Index: lams_flash/src/central/flash/lams_monitoring_v1.fla =================================================================== diff -u -r6d49e62b780b8eef0fbdc71b0635ca26de6a0d25 -rd065d513d8d620f940a0adb75935ebc5553cc276 Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as =================================================================== diff -u -raf3cd1d3045cff25723cb3794c9eca632cac55a1 -rd065d513d8d620f940a0adb75935ebc5553cc276 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision af3cd1d3045cff25723cb3794c9eca632cac55a1) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision d065d513d8d620f940a0adb75935ebc5553cc276) @@ -919,7 +919,7 @@ * Overrides AbstractView.defaultController() */ public function defaultController (model):Object { - return (model instanceof CanvasModel) ? new CanvasController(model) : new MonitorModel(model); + return (model instanceof CanvasModel) ? new CanvasController(model) : new MonitorController(model); } public function setOpen(a:Boolean):Void { Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasActivity.as =================================================================== diff -u -r43bef28b390ac8bec99626dc15c94d577875f046 -rd065d513d8d620f940a0adb75935ebc5553cc276 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasActivity.as (.../CanvasActivity.as) (revision 43bef28b390ac8bec99626dc15c94d577875f046) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasActivity.as (.../CanvasActivity.as) (revision d065d513d8d620f940a0adb75935ebc5553cc276) @@ -313,6 +313,7 @@ var learner_X = _activity.xCoord + learnerOffset_X; var learner_Y = _activity.yCoord + learnerOffset_Y; + var parentAct:Activity = mm.getMonitor().ddm.getActivityByUIID(_activity.parentUIID) var xCoord = _activity.xCoord; @@ -324,7 +325,10 @@ if(parentAct.activityTypeID != Activity.PARALLEL_ACTIVITY_TYPE && parentAct.activityTypeID != Activity.SEQUENCE_ACTIVITY_TYPE) { xCoord = parentAct.xCoord + _activity.xCoord; - learner_X = (learner_X != null) ? learner_X + parentAct.xCoord : null; + + if(learner_X != null) + learner_X = (mm instanceof CanvasComplexView) ? : ? learner_X + parentAct.xCoord : null; + learner_Y = learner_Y + parentAct.yCoord; } else { xCoord = parentAct.xCoord; @@ -334,6 +338,7 @@ if(parentAct.isOptionsWithSequencesActivity()) { xCoord = parentAct.xCoord + xCoord; + learner_X = (learner_X != null) ? learner_X + xCoord : null; learner_Y = learner_Y + parentAct.yCoord + yCoord; } @@ -356,6 +361,7 @@ // Add + icon to indicate that more users are currently at the Activity. // We are unable to display all the users across the Activity's panel. Debugger.log("learner_X: " + learner_X + " ref: " + learnerContainer + " xcoord: " + xCoord, Debugger.CRITICAL, "drawLearners", "CanvasActivity"); + if(learner_X > (xCoord + getVisibleWidth() - 10)) { learnerContainer.attachMovie("learnerIcon", "learnerIcon"+learner.getUserName(), learnerContainer.getNextHighestDepth(), {_activity:_activity, learner:learner, _monitorController:_monitorController, _x:learner_X, _y:learner_Y, _hasPlus:true, _clone:false }); return; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as =================================================================== diff -u -raf3cd1d3045cff25723cb3794c9eca632cac55a1 -rd065d513d8d620f940a0adb75935ebc5553cc276 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as (.../CanvasComplexView.as) (revision af3cd1d3045cff25723cb3794c9eca632cac55a1) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as (.../CanvasComplexView.as) (revision d065d513d8d620f940a0adb75935ebc5553cc276) @@ -52,6 +52,7 @@ private var _mm:MonitorModel; private var _canvasComplexView:CanvasComplexView; + private var _learnerContainer_mc:MovieClip; private var _complexActivity:CanvasActivity; private var _tempActivity; @@ -116,28 +117,28 @@ */ public function viewUpdate(event:Object):Void{ Debugger.log('Recived an Event dispather UPDATE!, updateType:'+event.updateType+', target'+event.target,4,'viewUpdate','CanvasView'); - var cm:CanvasModel = event.target; - + var _model = event.target; + switch (event.updateType){ case 'POSITION' : - setPosition(cm); + setPosition(_model); break; case 'SIZE' : - setSize(cm); + setSize(_model); break; case 'DRAW_ACTIVITY': - drawActivity(event.data, cm); + drawActivity(event.data, _model); break; case 'REMOVE_ACTIVITY': - removeActivity(event.data, cm); + removeActivity(event.data, _model); break; case 'SELECTED_ITEM' : - Debugger.log("selecting item: " + cm.selectedItem.activity.activityUIID, Debugger.CRITICAL, "viewUpdate", "CanvasComplexView"); - Debugger.log("test parent: " + cm.findParent(cm.selectedItem.activity, _complexActivity.activity), Debugger.CRITICAL, "viewUpdate", "CanvasComplexView"); + Debugger.log("selecting item: " + _model.selectedItem.activity.activityUIID, Debugger.CRITICAL, "viewUpdate", "CanvasComplexView"); + Debugger.log("test parent: " + _model.findParent(_model.selectedItem.activity, _complexActivity.activity), Debugger.CRITICAL, "viewUpdate", "CanvasComplexView"); _tempActivity.refreshChildren(); - highlightActivity(cm); + highlightActivity(_model); break; case 'SET_ACTIVE' : @@ -162,6 +163,8 @@ activityComplexLayer = content.createEmptyMovieClip("_activityComplexLayer_mc", content.getNextHighestDepth()); activityLayer = content.createEmptyMovieClip("_activityLayer_mc", content.getNextHighestDepth()); + _learnerContainer_mc = content.createEmptyMovieClip("_learnerContainer_mc", content.getNextHighestDepth()); + complexViewer = content.createEmptyMovieClip("_complex_viewer_mc", content.getNextHighestDepth()); branchContent = content.createEmptyMovieClip("_branch_content_mc", DepthManager.kTopmost); @@ -218,27 +221,39 @@ var ccv = CanvasComplexView(this); var cvc = getController(); + var fromModuleTab:String = null; + var _module = null; + + if(cm instanceof MonitorModel) { + Debugger.log("cvc: " + cvc, Debugger.CRITICAL, "drawActivity", "CanvasComplexView"); + + fromModuleTab = "monitorMonitorTab"; + _module = "monitoring"; + } + //take action depending on act type if(a.activityTypeID==Activity.PARALLEL_ACTIVITY_TYPE){ //get the children - var children:Array = cm.getCanvas().ddm.getComplexActivityChildren(a.activityUIID); + var children:Array = ddm.getComplexActivityChildren(a.activityUIID); - var newActivity_mc = activityLayer.createChildAtDepth("CanvasParallelActivity",DepthManager.kTop,{_x: 0, _y: 0, _activity:a,_children:children,_canvasController:cvc,_canvasComplexView:ccv, _locked:a.isReadOnly()}); + var newActivity_mc = (_module != "monitoring") ? activityLayer.createChildAtDepth("CanvasParallelActivity",DepthManager.kTop,{_x: 0, _y: 0, _activity:a,_children:children,_canvasController:cvc,_canvasComplexView:ccv, _locked:a.isReadOnly()}) + : activityLayer.createChildAtDepth("CanvasParallelActivity",DepthManager.kTop,{_x: 0, _y: 0, _activity:a,_children:children,_monitorController:cvc,_canvasComplexView:ccv, _locked:a.isReadOnly(), fromModuleTab:"monitorMonitorTab", learnerContainer:_learnerContainer_mc}); + _tempActivity = newActivity_mc; - //activitiesDisplayed.put(a.activityUIID, newActivity_mc); - Debugger.log('Parallel activity a.title:'+a.title+','+a.activityUIID+' added to the cm.activitiesDisplayed hashtable :'+newActivity_mc,4,'drawActivity','CanvasView'); + Debugger.log('Parallel activity a.title:'+a.title+','+a.activityUIID+' added to the cm.activitiesDisplayed hashtable :'+newActivity_mc,4,'drawActivity','CanvasComplexView'); } else if(a.activityTypeID==Activity.OPTIONAL_ACTIVITY_TYPE || a.activityTypeID==Activity.OPTIONS_WITH_SEQUENCES_TYPE){ - var children:Array = cm.getCanvas().ddm.getComplexActivityChildren(a.activityUIID); - var newActivity_mc = activityComplexLayer.createChildAtDepth("CanvasOptionalActivity", DepthManager.kTop, {_x: 0, _y: 0, _activity:a,_children:children,_canvasController:cvc,_canvasComplexView:ccv,_locked:a.isReadOnly()}); + var children:Array = ddm.getComplexActivityChildren(a.activityUIID); + var newActivity_mc = (_module != "monitoring") ? activityComplexLayer.createChildAtDepth("CanvasOptionalActivity", DepthManager.kTop, {_x: 0, _y: 0, _activity:a,_children:children,_canvasController:cvc,_canvasComplexView:ccv,_locked:a.isReadOnly()}) + : activityComplexLayer.createChildAtDepth("CanvasOptionalActivity", DepthManager.kTop, {_x: 0, _y: 0, _activity:a,_children:children,_monitorController:cvc,_canvasComplexView:ccv,_locked:a.isReadOnly(), fromModuleTab:"monitorMonitorTab", learnerContainer:_learnerContainer_mc}); + _tempActivity = newActivity_mc; - //activitiesDisplayed.put(a.activityUIID, newActivity_mc); - Debugger.log('Optional activity Type a.title:'+a.title+','+a.activityUIID+' added to the cm.activitiesDisplayed hashtable :'+newActivity_mc,4,'drawActivity','CanvasView'); + Debugger.log('Optional activity Type a.title:'+a.title+','+a.activityUIID+' added to the cm.activitiesDisplayed hashtable :'+newActivity_mc,4,'drawActivity','CanvasComplexView'); } else { - Debugger.log('The activity:'+a.title+','+a.activityUIID+' is of unknown type, it cannot be drawn',Debugger.CRITICAL,'drawActivity','CanvasView'); + Debugger.log('The activity:'+a.title+','+a.activityUIID+' is of unknown type, it cannot be drawn',Debugger.CRITICAL,'drawActivity','CanvasComplexView'); } return true; @@ -251,7 +266,7 @@ * @param cm - Refernce to the model * @return Boolean - successfull */ - private function removeActivity(a:Activity,cm:CanvasModel):Boolean{ + private function removeActivity(a:Activity,cm):Boolean{ if(!cm.isActiveView(this)) return false; var r = activitiesDisplayed.remove(a.activityUIID); @@ -282,7 +297,7 @@ * Sets the position of the canvas on stage, called from update * @param cm Canvas model object */ - private function setPosition(cm:CanvasModel):Void{ + private function setPosition(cm):Void{ var p:Object = cm.getPosition(); this._x = p.x; this._y = p.y; @@ -294,8 +309,10 @@ } public function get model():Object { + if(_cm != null) return _cm; if(_mm != null) return _mm; + return null; } @@ -320,8 +337,8 @@ * Returns the default controller for this view . * Overrides AbstractView.defaultController() */ - public function defaultController (model):Object { - return (model instanceof CanvasModel) ? new CanvasController(model) : new MonitorModel(model); + public function defaultController(model):Object { + return (model instanceof CanvasModel) ? new CanvasController(model) : new MonitorController(model); } public function get openActivity():MovieClip { Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasOptionalActivity.as =================================================================== diff -u -r47545d87ebe3a0fde51c85720b8e0693ad471843 -rd065d513d8d620f940a0adb75935ebc5553cc276 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasOptionalActivity.as (.../CanvasOptionalActivity.as) (revision 47545d87ebe3a0fde51c85720b8e0693ad471843) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasOptionalActivity.as (.../CanvasOptionalActivity.as) (revision d065d513d8d620f940a0adb75935ebc5553cc276) @@ -161,7 +161,13 @@ for (var i=0; i < _children.length; i++) { if(fromModuleTab == "monitorMonitorTab"){ - children_mc[i] = childActivities_mc.attachMovie("CanvasActivity", "CanvasActivity"+i, childActivities_mc.getNextHighestDepth (), {_activity:_children[i] , _monitorController:_monitorController, _monitorView:_monitorTabView, _module:"monitoring", learnerContainer:learnerContainer}); + if(_canvasBranchView != null) { + children_mc[i] = childActivities_mc.attachMovie("CanvasActivity", "CanvasActivity"+i, childActivities_mc.getNextHighestDepth (), {_activity:_children[i] , _monitorController:_monitorController, _monitorView:_canvasBranchView, _module:"monitoring", learnerContainer:learnerContainer}); + } else if(_canvasComplexView != null) { + children_mc[i] = childActivities_mc.attachMovie("CanvasActivity", "CanvasActivity"+i, childActivities_mc.getNextHighestDepth (), {_activity:_children[i] , _monitorController:_monitorController, _monitorView:_canvasComplexView, _module:"monitoring", learnerContainer:learnerContainer}); + } else { + children_mc[i] = childActivities_mc.attachMovie("CanvasActivity", "CanvasActivity"+i, childActivities_mc.getNextHighestDepth (), {_activity:_children[i] , _monitorController:_monitorController, _monitorView:_monitorTabView, _module:"monitoring", learnerContainer:learnerContainer}); + } } else { if(_canvasBranchView != null) { children_mc[i] = childActivities_mc.attachMovie("CanvasActivity", "CanvasActivity"+i, childActivities_mc.getNextHighestDepth (), {_activity:_children[i] , _canvasController:_canvasController, _canvasBranchView:_canvasBranchView}) @@ -302,8 +308,9 @@ private function drawLearners():Void { var mm:MonitorModel = MonitorModel(_monitorController.getModel()); - var learner_X = _activity.xCoord + learnerOffset_X; - var learner_Y = _activity.yCoord + learnerOffset_Y; + + var learner_X = (mm.activeView instanceof CanvasComplexView) ? this._x + learnerOffset_X : _activity.xCoord + learnerOffset_X; + var learner_Y = (mm.activeView instanceof CanvasComplexView) ? this._y + learnerOffset_Y : _activity.yCoord + learnerOffset_Y; // get the length of learners from the Monitor Model and run a for loop. for (var j=0; j (_activity.xCoord + 112)){ - learner_X = _activity.xCoord + learnerOffset_X ; + var actX:Number = (mm.activeView instanceof CanvasComplexView) ? this._x : _activity.xCoord; + + if (learner_X > (actX + 112)){ + learner_X = actX + learnerOffset_X ; learner_Y = 27; hasPlus = true; + learnerContainer.attachMovie("learnerIcon", "learnerIcon"+learner.getUserName(), learnerContainer.getNextHighestDepth(),{_activity:_activity, learner:learner, _monitorController:_monitorController, _x:learner_X, _y:learner_Y, _hasPlus:hasPlus }); return; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasParallelActivity.as =================================================================== diff -u -r47545d87ebe3a0fde51c85720b8e0693ad471843 -rd065d513d8d620f940a0adb75935ebc5553cc276 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasParallelActivity.as (.../CanvasParallelActivity.as) (revision 47545d87ebe3a0fde51c85720b8e0693ad471843) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasParallelActivity.as (.../CanvasParallelActivity.as) (revision d065d513d8d620f940a0adb75935ebc5553cc276) @@ -144,6 +144,7 @@ if(fromModuleTab == "monitorMonitorTab"){ Debugger.log("initialising for monitor: " + child1.activityUIID + " " + child2.activityUIID, Debugger.CRITICAL, "init", "CanvasParallelActivity"); + Debugger.log("controller for monitor: " + _monitorController, Debugger.CRITICAL, "init", "CanvasParallelActivity"); //child1_mc = childActivities_mc.createChildAtDepth("CanvasActivity",DepthManager.kTop,{_activity:child1 ,_monitorController:_monitorController, _monitorView:_monitorTabView, _module:"monitoring", learnerContainer:learnerContainer}); //child2_mc = childActivities_mc.createChildAtDepth("CanvasActivity",DepthManager.kTop,{_activity:child2 ,_monitorController:_monitorController, _monitorView:_monitorTabView, _module:"monitoring", learnerContainer:learnerContainer}); @@ -244,8 +245,8 @@ private function drawLearners():Void { var mm:MonitorModel = MonitorModel(_monitorController.getModel()); - var learner_X = _activity.xCoord + learnerOffset_X; - var learner_Y = _activity.yCoord + learnerOffset_Y; + var learner_X = (mm.activeView instanceof CanvasComplexView) ? this._x + learnerOffset_X : _activity.xCoord + learnerOffset_X; + var learner_Y = (mm.activeView instanceof CanvasComplexView) ? this._y + learnerOffset_Y : _activity.yCoord + learnerOffset_Y; // get the length of learners from the Monitor Model and run a for loop. for (var j=0; j (_activity.xCoord + 112)){ - learner_X = _activity.xCoord + learnerOffset_X + if (learner_X > (actX + 112)){ + learner_X = actX + learnerOffset_X learner_Y = 27 hasPlus = true; learnerContainer.attachMovie("learnerIcon", "learnerIcon"+learner.getUserName(), this._parent.getNextHighestDepth(),{_activity:_activity, learner:learner, _monitorController:_monitorController, _x:learner_X, _y:learner_Y, _hasPlus:hasPlus }); Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as =================================================================== diff -u -r7a07722b14620a94c541b0c18f36172fb69a8ced -rd065d513d8d620f940a0adb75935ebc5553cc276 --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as (.../Monitor.as) (revision 7a07722b14620a94c541b0c18f36172fb69a8ced) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as (.../Monitor.as) (revision d065d513d8d620f940a0adb75935ebc5553cc276) @@ -28,6 +28,8 @@ import org.lamsfoundation.lams.authoring.DesignDataModel; import org.lamsfoundation.lams.authoring.Activity; import org.lamsfoundation.lams.authoring.cv.CanvasActivity; +import org.lamsfoundation.lams.authoring.cv.CanvasOptionalActivity; +import org.lamsfoundation.lams.authoring.cv.CanvasComplexView; import org.lamsfoundation.lams.authoring.br.CanvasBranchView; import org.lamsfoundation.lams.common.ui.*; import org.lamsfoundation.lams.common.util.*; @@ -51,12 +53,16 @@ // Model private var monitorModel:MonitorModel; + // View private var monitorView:MonitorView; private var monitorLockView:MonitorLockView; private var monitorView_mc:MovieClip; private var monitorLockView_mc:MovieClip; + private var canvasComplexView:CanvasComplexView; + private var _canvasComplexView_mc:MovieClip; + private var locked:Boolean; private var app:Application; @@ -154,11 +160,16 @@ if(evt.type=='load') { - monitorModel.activeView = evt.target; - if(evt.target instanceof CanvasBranchView) { + monitorModel.activeView = evt.target; + evt.target.open(); monitorModel.setDirty(false); + } else if(evt.target instanceof CanvasComplexView) { + monitorModel.activeView = evt.target; + + // open complex view + evt.target.showActivity(); } else if((monitorLockView != null || !locked) && monitorView != null) { dispatchEvent({type:'load',target:this}); } @@ -170,7 +181,8 @@ private function tabsLoaded(evt:Object){ Debugger.log('tabsLoaded called',Debugger.GEN,'tabsLoaded','Monitor'); - + monitorModel.activeView = MonitorView(evt.target).getMonitorTabView(); + monitorModel.setSequence(app.sequence); saveDataDesignModel(null); @@ -392,6 +404,7 @@ } //sets these in the monitor model in a hashtable by learnerID + monitorModel.activeView = monitorView.getMonitorTabView(); monitorModel.setLessonProgressData(allLearners); monitorModel.backupLearnersProgress(monitorModel.allLearnersProgress); dispatchEvent({type:'load',target:this}); @@ -468,7 +481,7 @@ var cy:Number = ba._y + ba.getVisibleHeight()/2; var isVisible:Boolean = (visible == null) ? true : visible; - var target:MovieClip = (monitorModel.activeView instanceof CanvasBranchView) ? monitorModel.activeView.branchContent : monitorView.getMonitorTabView(); + var target:MovieClip = monitorModel.activeView.branchContent; var _branchView_mc:MovieClip = target.createChildAtDepth("canvasBranchView", DepthManager.kTop, {_x: cx, _y: cy, _canvasBranchingActivity:ba, _open:isVisible}); var branchView:CanvasBranchView = CanvasBranchView(_branchView_mc); @@ -502,6 +515,58 @@ Debugger.log("It had a UIID of: "+poppedActivityUIID, Debugger.CRITICAL, "openBranchActivityContent", "Monitor"); } + public function openComplexView(ca:Object):Void { + + var target:MovieClip = (monitorModel.activeView instanceof CanvasBranchView) ? monitorModel.activeView.complexViewer : monitorView.getMonitorTabView().complexViewer; + + var cx:Number; + var cy:Number; + + var parentAct:Activity = ddm.getActivityByUIID(ca.activity.parentUIID); + var grandParentActivity:MovieClip = monitorModel.activitiesDisplayed.get(parentAct.parentUIID); + var parentActivity:MovieClip = monitorModel.activitiesDisplayed.get(parentAct.activityUIID); + + if(monitorModel.activeView instanceof CanvasComplexView) { + if(monitorModel.activeView.complexActivity == ca) { + return; + } + + target = monitorModel.activeView.complexViewer; + + Debugger.log("parentAct: " + parentAct.activityUIID, Debugger.CRITICAL, "openComplexView", "Monitor"); + Debugger.log("parentAct type: " + parentAct.activityTypeID, Debugger.CRITICAL, "openComplexView", "Monitor"); + Debugger.log("gpAct: " + grandParentActivity.activity.activityUIID, Debugger.CRITICAL, "openComplexView", "Monitor"); + + if(parentAct.isSequenceActivity() && monitorModel.activeView.openActivity instanceof CanvasOptionalActivity) { + cx = parentAct.xCoord + ca._x; + cy = parentAct.yCoord + ca._y; + } else { + cx = ca._x; + cy = ca._y; + } + } else { + + if(parentAct.isSequenceActivity() && grandParentActivity instanceof CanvasOptionalActivity) { + cx = grandParentActivity._x + parentAct.xCoord + ca._x; + cy = grandParentActivity._y + parentAct.yCoord + ca._y; + } else { + cx = parentActivity._x + ca._x; + cy = parentActivity._y + ca._y; + } + } + + Debugger.log("co ord x: " + cx + " y: " + cy, Debugger.CRITICAL, "openComplexView", "Monitor"); + + _canvasComplexView_mc = target.createChildAtDepth("canvasComplexView", DepthManager.kTop, {_x: cx, _y: cy, _complexActivity:ca, _parentActivity:parentActivity, _visible:false, _prevActiveView: monitorModel.activeView}); + canvasComplexView = CanvasComplexView(_canvasComplexView_mc); + + canvasComplexView.init(monitorModel, undefined); + canvasComplexView.addEventListener('load', Proxy.create(this, viewLoaded)); + + monitorModel.addObserver(canvasComplexView); + } + + /** * Open the Help page for the selected Tool (Canvas) Activity * Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as =================================================================== diff -u -r9dac3eabf07f6397101ac56cd6c4e8b3d3a5aa18 -rd065d513d8d620f940a0adb75935ebc5553cc276 --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as (.../MonitorController.as) (revision 9dac3eabf07f6397101ac56cd6c4e8b3d3a5aa18) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as (.../MonitorController.as) (revision d065d513d8d620f940a0adb75935ebc5553cc276) @@ -393,11 +393,14 @@ else if (!fromContextMenu){ var _learnerID:Number; var URLToSend:String; + setBusy(); if(forTabView == "MonitorTabView"){ + URLToSend = _root.serverURL+_root.monitoringURL+'getActivityMonitorURL&activityID='+ca.activity.activityID+'&lessonID='+_root.lessonID; URLToSend += '&contentFolderID='+MonitorModel(getModel()).getSequence().contentFolderID + } else { if(learnerID != null){ _learnerID = learnerID; @@ -410,6 +413,7 @@ }else { URLToSend = _root.serverURL+_root.monitoringURL+'getLearnerActivityURL&activityID='+ca.activity.activityID+'&userID='+_learnerID+'&lessonID='+_root.lessonID; } + Debugger.log('activityDoubleClick CanvasActivity:'+ca.activityID,Debugger.GEN,'activityDoubleClick','MonitorController'); } @@ -425,7 +429,17 @@ JsPopup.getInstance().launchPopupWindow(URLToSend, 'MonitorLearnerActivity', 600, 800, true, true, false, false, false); } } else { - JsPopup.getInstance().launchPopupWindow(URLToSend, 'MonitorLearnerActivity', 600, 800, true, true, false, false, false); + + if(ca.activity.parentUIID != null && (ca.activity.activityTypeID == Activity.PARALLEL_ACTIVITY_TYPE || + ca.activity.activityTypeID == Activity.OPTIONAL_ACTIVITY_TYPE || + ca.activity.activityTypeID == Activity.OPTIONS_WITH_SEQUENCES_TYPE)) { + // open complex inside complex view + Debugger.log("open complex viewer: " + ca.activity.activityUIID, Debugger.CRITICAL, "activityDoubleClick", "MonitorController") + _monitorModel.getMonitor().openComplexView(ca); + } else { + JsPopup.getInstance().launchPopupWindow(URLToSend, 'MonitorLearnerActivity', 600, 800, true, true, false, false, false); + } + } clearBusy(); @@ -481,12 +495,6 @@ } else if(tgt.indexOf("exportPortfolio_btn") != -1){ exportClassPortfolio(); }else if(tgt.indexOf("refresh_btn") != -1){ - - if(_monitorModel.activeView instanceof CanvasBranchView) { - _monitorModel.getMonitor.closeBranchView(); - _monitorModel.activeView.removeMovieClip(); - } - if (_monitorModel.getSelectedTab() == 2) _monitorModel.resetLearnerIndexBar(); Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/MonitorTabView.as =================================================================== diff -u -r1e9e05de4e775da14f011fed79edde7c1661f712 -rd065d513d8d620f940a0adb75935ebc5553cc276 --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/MonitorTabView.as (.../MonitorTabView.as) (revision 1e9e05de4e775da14f011fed79edde7c1661f712) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/MonitorTabView.as (.../MonitorTabView.as) (revision d065d513d8d620f940a0adb75935ebc5553cc276) @@ -234,6 +234,7 @@ * layout visual elements on the MonitorTabView on initialisation */ private function draw(){ + content = this; bkg_pnl = this.attachMovie("Panel", "bkg_pnl", this.getNextHighestDepth()); @@ -247,8 +248,11 @@ // creates learner icon on initial draw _learnerContainer_mc = this.createEmptyMovieClip("_learnerContainer_mc", this.getNextHighestDepth()); - transparentCover = this.attachMovie("Panel", "_transparentCover_mc", this.getNextHighestDepth(), {_visible: false, enabled: false, _alpha: 50}); - transparentCover.onPress = null; + transparentCover = this.attachMovie("Panel", "_transparentCover_mc", this.getNextHighestDepth(), {_visible: false, enabled: true, _alpha: 50}); + transparentCover.onPress = Proxy.create(this, onTransparentCoverClick); + + complexViewer = this.createEmptyMovieClip("_complex_viewer_mc", this.getNextHighestDepth()); + branchContent = this.createEmptyMovieClip("_branch_content_mc", DepthManager.kTopmost); var s:Object = mm.getSize(); @@ -294,16 +298,22 @@ this.activityLayer.removeMovieClip(); this.transparentCover.removeMovieClip(); + this.branchContent.removeMovieClip(); + this.complexViewer.removeMovieClip(); + //Recreate both Transition holder and Activity holder Movieclips transitionLayer = this.createEmptyMovieClip("_transitionLayer_mc", this.getNextHighestDepth()); activityLayer = this.createEmptyMovieClip("_activityLayer_mc", this.getNextHighestDepth(),{_y:learnerMenuBar._height}); _learnerContainer_mc = this.createEmptyMovieClip("_learnerContainer_mc", this.getNextHighestDepth()); - transparentCover = this.attachMovie("Panel", "_transparentCover_mc", this.getNextHighestDepth(), {_visible: false, enabled: false, _alpha: 50}); - transparentCover.onPress = null; + transparentCover = this.attachMovie("Panel", "_transparentCover_mc", this.getNextHighestDepth(), {_visible: false, enabled: true, _alpha: 50}); + transparentCover.onPress = Proxy.create(this, onTransparentCoverClick); + complexViewer = this.createEmptyMovieClip("_complex_viewer_mc", this.getNextHighestDepth()); + branchContent = this.createEmptyMovieClip("_branch_content_mc", DepthManager.kTopmost); + if (isChanged == false){ mm.setIsProgressChangedSequence(false); Index: lams_flash/src/common/flash/org/lamsfoundation/lams/common/CommonCanvasView.as =================================================================== diff -u -r47545d87ebe3a0fde51c85720b8e0693ad471843 -rd065d513d8d620f940a0adb75935ebc5553cc276 --- lams_flash/src/common/flash/org/lamsfoundation/lams/common/CommonCanvasView.as (.../CommonCanvasView.as) (revision 47545d87ebe3a0fde51c85720b8e0693ad471843) +++ lams_flash/src/common/flash/org/lamsfoundation/lams/common/CommonCanvasView.as (.../CommonCanvasView.as) (revision d065d513d8d620f940a0adb75935ebc5553cc276) @@ -49,6 +49,9 @@ private var model:Observable; private var controller:Controller; + + private var _cm:CanvasModel; + private var _mm:MonitorModel; private var bkg_pnl:Panel; @@ -71,7 +74,7 @@ public var removeEventListener:Function; public function CommonCanvasView (m:Observable, c:Controller) { - super(m, c); + super(m, c); mx.events.EventDispatcher.initialize(this); } @@ -117,20 +120,16 @@ } public function onTransparentCoverClick(evt:Object):Void { + var _model = getModel(); - var m = (model instanceof MonitorModel) ? MonitorModel(model) : null; - m = (model instanceof CanvasModel) ? CanvasModel(model) : m; + var m = (_model instanceof MonitorModel) ? MonitorModel(_model) : null; + m = (_model instanceof CanvasModel) ? CanvasModel(_model) : m; + Debugger.log("active view: " + m.activeView, Debugger.CRITICAL, "onTransparentcoverClick", "CommonCanvasView"); Debugger.log("running transparent click: " + m.activeView instanceof CanvasComplexView, Debugger.CRITICAL, "onTransparentcoverClick", "CommonCanvasView"); - if(m.activeView instanceof CanvasComplexView) { - if(m instanceof CanvasModel) { - m.activeView.close(); - } else { - //m.getMonitor().closeComplexView(); - } - - } + if(m.activeView instanceof CanvasComplexView) + m.activeView.close(); } private function initDrawTempTrans(){ Index: lams_monitoring/web/lams_monitoring.swf =================================================================== diff -u -r9dac3eabf07f6397101ac56cd6c4e8b3d3a5aa18 -rd065d513d8d620f940a0adb75935ebc5553cc276 Binary files differ Index: lams_monitoring/web/lams_monitoring_library.swf =================================================================== diff -u -r9dac3eabf07f6397101ac56cd6c4e8b3d3a5aa18 -rd065d513d8d620f940a0adb75935ebc5553cc276 Binary files differ