Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as =================================================================== diff -u -r5d57803e51f8d449417863a637597fa7a3bdb143 -r7a07722b14620a94c541b0c18f36172fb69a8ced --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision 5d57803e51f8d449417863a637597fa7a3bdb143) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision 7a07722b14620a94c541b0c18f36172fb69a8ced) @@ -136,9 +136,11 @@ //register to recive updates form the model if(_cm != null) _cm.addEventListener('viewUpdate', Proxy.create(this, viewUpdate)); - //if(_mm != null) _mm.addEventListener('viewUpdate', Proxy.create(this, viewUpdate)); + if(_mm != null) _mm.addEventListener('viewUpdate', Proxy.create(this, viewUpdate)); - _isBranchChild = (_cm.activeView instanceof CanvasBranchView); + if (_cm != null) _isBranchChild = (_cm.activeView instanceof CanvasBranchView); + if (_mm != null) _isBranchChild = (_mm.activeView instanceof CanvasBranchView); + _isOpen = false; MovieClipUtils.doLater(Proxy.create(this, draw)); @@ -305,8 +307,7 @@ if(model.isDirty) model.refreshDesign(); - - //model.releaseNextFromBranchingQueue(); + } private function setupConnectorHubs() { @@ -412,7 +413,7 @@ } private function close():Void { - if(model instanceof CanvasModel) model.getCanvas().hideBin(); //typo + if(model instanceof CanvasModel) model.getCanvas().hideBin(); model.selectedItem = null; var bkeys:Array = model.branchesDisplayed.keys(); @@ -450,7 +451,7 @@ public function localOnReleaseOutside():Void{ } - private function addSequence(a:SequenceActivity, cm:CanvasModel):Boolean{ + private function addSequence(a:SequenceActivity, cm):Boolean{ if(a.parentUIID == activity.activityUIID) { if(a.firstActivityUIID == null) defaultSequenceActivity = a; @@ -474,10 +475,10 @@ * @usage * @param a - Activity to be drawn * @param cm - Refernce to the model - * @return Boolean - successfullit + * @return Boolean - successfull */ private function drawActivity(a:Activity, cm):Boolean { - if(this.activity.activityUIID != ddm.getActivityByUIID(a.parentUIID).parentUIID) + if(this.activity.activityUIID != ddm.getActivityByUIID(a.parentUIID).parentUIID) return false; var cbv = CanvasBranchView(this); @@ -752,16 +753,16 @@ /** * Sets the size of the canvas on stage, called from update */ - private function setSize(cm):Void{ - var ba = cm.currentBranchingActivity; + private function setSize(model):Void{ + var ba = model.currentBranchingActivity; Debugger.log("currentBranchActivity: " + ba, Debugger.CRITICAL, "setSize", "CanvasBranchView"); - var s:Object = cm.getSize(); + var s:Object = model.getSize(); var cx:Number = ba._x + ba.getVisibleWidth()/2; var cy:Number = ba._y + ba.getVisibleHeight()/2; - var isCanvasModel = cm instanceof CanvasModel; + var isCanvasModel = model instanceof CanvasModel; s.w -= 2*hSpace; s.h -= 2*vSpace; @@ -774,25 +775,25 @@ grid_mc = Grid.drawGrid(gridLayer,Math.round(s.w),Math.round(s.h),V_GAP,H_GAP); //position bin in canvas. - if(cm.activeView == this && isCanvasModel) { - var bin = cm.getCanvas().bin; + if(model.activeView == this && isCanvasModel) { + var bin = model.getCanvas().bin; bin._x = (s.w - bin._width) - 10; bin._y = (s.h - bin._height) - 10; } //canvas_scp.redraw(true); - setPosition(cm, cx, cy); + setPosition(model, cx, cy); } /** * Sets the position of the canvas on stage, called from update * @param cm Canvas model object */ - private function setPosition(cm, cx, cy){ + private function setPosition(model, cx, cy){ // var ba = (_ba != null || _ba == undefined) ? cm.activitiesDisplayed.get(activity.activityUIID) : _ba; - Debugger.log("cm: " + cm.activitiesDisplayed, Debugger.CRITICAL, "setPosition", "CanvasBranchView"); + Debugger.log("model: " + model.activitiesDisplayed, Debugger.CRITICAL, "setPosition", "CanvasBranchView"); Debugger.log("act UIID: " + activity.activityUIID, Debugger.CRITICAL, "setPosition", "CanvasBranchView"); Debugger.log("cx: " + cx, Debugger.CRITICAL, "setPosition", "CanvasBranchView"); @@ -806,8 +807,8 @@ if(_isBranchChild) Debugger.log("bc cx: " + cx + " // bc cy: " + cy, Debugger.CRITICAL, "setPosition", "CanvasBranchView"); - var hPosition:Number = (cm instanceof CanvasModel) ? cm.getCanvas().view.getScrollPaneHPosition() : cm.getMonitor().getMV().getMonitorSequenceScp().hPosition; - var vPosition:Number = (cm instanceof CanvasModel) ? cm.getCanvas().view.getScrollPaneVPosition() : cm.getMonitor().getMV().getMonitorSequenceScp().vPosition; + var hPosition:Number = (model instanceof CanvasModel) ? model.getCanvas().view.getScrollPaneHPosition() : model.getMonitor().getMV().getMonitorSequenceScp().hPosition; + var vPosition:Number = (model instanceof CanvasModel) ? model.getCanvas().view.getScrollPaneVPosition() : model.getMonitor().getMV().getMonitorSequenceScp().vPosition; canvas_scp._x = (_isBranchChild) ? -cx : -cx + hSpace + hPosition; canvas_scp._y = (_isBranchChild) ? -cy : -cy + vSpace + vPosition; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as =================================================================== diff -u -rde2fe8e6ee861290b3ddfe948152d53cc9ea2446 -r7a07722b14620a94c541b0c18f36172fb69a8ced --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as (.../Monitor.as) (revision de2fe8e6ee861290b3ddfe948152d53cc9ea2446) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as (.../Monitor.as) (revision 7a07722b14620a94c541b0c18f36172fb69a8ced) @@ -158,7 +158,7 @@ if(evt.target instanceof CanvasBranchView) { evt.target.open(); - monitorModel.setDirty(); + monitorModel.setDirty(false); } else if((monitorLockView != null || !locked) && monitorView != null) { dispatchEvent({type:'load',target:this}); } @@ -169,7 +169,7 @@ } private function tabsLoaded(evt:Object){ - Debugger.log('tabsLoaded called',Debugger.GEN,'viewLoaded','Monitor'); + Debugger.log('tabsLoaded called',Debugger.GEN,'tabsLoaded','Monitor'); monitorModel.setSequence(app.sequence); saveDataDesignModel(null); @@ -423,6 +423,12 @@ case '7' : seqStat = "Contribution" break; + /*case '8' : + seqStat = "System Gate" + break; + case '9' : + seqStat = "Teacher Chosen Branching" + break;*/ default: seqStat = "Not yet set" } @@ -462,22 +468,38 @@ var cy:Number = ba._y + ba.getVisibleHeight()/2; var isVisible:Boolean = (visible == null) ? true : visible; - var _branchView_mc:MovieClip = MovieClip(monitorView.getMonitorTabView()).createChildAtDepth("canvasBranchView", DepthManager.kTop, {_x: cx, _y: cy, _canvasBranchingActivity:ba, _open:isVisible}); + var target:MovieClip = (monitorModel.activeView instanceof CanvasBranchView) ? monitorModel.activeView.branchContent : monitorView.getMonitorTabView(); + var _branchView_mc:MovieClip = target.createChildAtDepth("canvasBranchView", DepthManager.kTop, {_x: cx, _y: cy, _canvasBranchingActivity:ba, _open:isVisible}); var branchView:CanvasBranchView = CanvasBranchView(_branchView_mc); - monitorModel.addObserver(branchView); branchView.init(monitorModel, monitorView.getController()); //Add listener to view so that we know when it's loaded branchView.addEventListener('load', Proxy.create(this, viewLoaded)); + monitorModel.addObserver(branchView); ba.branchView = branchView; + var actToPush = monitorModel.getMonitor().ddm.getActivityByUIID(ba.activity.activityUIID); + Debugger.log("Pushing activity: "+actToPush.title+" to the stack", Debugger.CRITICAL, "openBranchActivityContent", "MonitorModel"); + Debugger.log("It has a UIID of: "+actToPush.activityUIID, Debugger.CRITICAL, "openBranchActivityContent", "MonitorModel"); + monitorModel.openBranchingActivities.push(ba.activity.activityUIID); } public function closeBranchView() { - monitorModel.activeView = monitorView.getMonitorTabView(); - monitorModel.currentBranchingActivity = null; + var parentBranching:CanvasActivity = null; + var isCBV:Boolean = false; + + if(monitorModel.activeView.activity.parentUIID != null) + parentBranching = CanvasActivity(monitorModel.activitiesDisplayed.get(_ddm.getActivityByUIID(monitorModel.activeView.activity.parentUIID).parentUIID)); + + monitorModel.activeView = (parentBranching.activity.isBranchingActivity()) ? parentBranching.branchView : monitorView.getMonitorTabView(); + monitorModel.currentBranchingActivity = (parentBranching.activity.isBranchingActivity()) ? parentBranching : null; + + var poppedActivityUIID:Number = monitorModel.openBranchingActivities.pop(); + var poppedActivity = monitorModel.getMonitor().ddm.getActivityByUIID(poppedActivityUIID); + Debugger.log("Closing branching activity: "+poppedActivity.title, Debugger.CRITICAL, "closeBranchView", "Monitor"); + Debugger.log("It had a UIID of: "+poppedActivityUIID, Debugger.CRITICAL, "openBranchActivityContent", "Monitor"); } /** Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as =================================================================== diff -u -r1e9e05de4e775da14f011fed79edde7c1661f712 -r7a07722b14620a94c541b0c18f36172fb69a8ced --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as (.../MonitorController.as) (revision 1e9e05de4e775da14f011fed79edde7c1661f712) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as (.../MonitorController.as) (revision 7a07722b14620a94c541b0c18f36172fb69a8ced) @@ -389,7 +389,7 @@ Debugger.log("ca.activity.isBranchingActivity(): "+ca.activity.isBranchingActivity(), Debugger.GEN, "activityDoubleClick", "MonitorController"); if(ca.activity.isBranchingActivity() && !fromContextMenu) { _monitorModel.openBranchActivityContent(ca, true); - } else { + } else { var _learnerID:Number; var URLToSend:String; @@ -483,8 +483,8 @@ }else if(tgt.indexOf("refresh_btn") != -1){ if(_monitorModel.activeView instanceof CanvasBranchView) { - _monitorModel.activeView.removeMovieClip(); _monitorModel.getMonitor.closeBranchView(); + _monitorModel.activeView.removeMovieClip(); } if (_monitorModel.getSelectedTab() == 2) Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as =================================================================== diff -u -r1e9e05de4e775da14f011fed79edde7c1661f712 -r7a07722b14620a94c541b0c18f36172fb69a8ced --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision 1e9e05de4e775da14f011fed79edde7c1661f712) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision 7a07722b14620a94c541b0c18f36172fb69a8ced) @@ -137,6 +137,7 @@ private var _matchesArr:Array; private var backupLearnersProgArr:Array; private var _searchResultsBackup:Array; + private var _openBranchingActivities:Array; private var _openBranchingActivity:Number; @@ -161,6 +162,7 @@ _inSearchView = false; _resetSearchTextField = false; _indexSelected = false; + _doRefresh = true; _currentLearnerIndex = 1; _oldIndex = 1; @@ -181,6 +183,7 @@ learnerTabActArr = new Array(); ddmActivity_keys = new Array(); ddmTransition_keys = new Array(); + _openBranchingActivities = new Array(); _resultDTO = new Object(); ttHolder = ApplicationParent.tooltip; @@ -717,8 +720,9 @@ if(activity.isBranchingActivity() || activity.isSequenceActivity()) { var children:Array = _activeSeq.getLearningDesignModel().getComplexActivityChildren(activity.activityUIID); - for(var i=0; i