Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -rcd71ab45b3373f11dbb8e7af2e670cde625b9842 -rf65686830c50dda1e327b1169889198c57044815 Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -rcd71ab45b3373f11dbb8e7af2e670cde625b9842 -rf65686830c50dda1e327b1169889198c57044815 Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as =================================================================== diff -u -rc8a3ab790f64597f8a37e88e5805014136695b16 -rf65686830c50dda1e327b1169889198c57044815 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision c8a3ab790f64597f8a37e88e5805014136695b16) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision f65686830c50dda1e327b1169889198c57044815) @@ -86,6 +86,7 @@ private var _open:Boolean; private var _isBranchChild:Boolean; + private var _eventsEnabled:Boolean; /** * Constructor @@ -99,6 +100,7 @@ _tm = ThemeManager.getInstance(); defaultSequenceActivity = null; fingerprint = null; + _eventsEnabled = true; //Init for event delegation mx.events.EventDispatcher.initialize(this); @@ -160,6 +162,12 @@ */ public function viewUpdate(event:Object):Void{ Debugger.log('Received an Event dispatcher UPDATE!, updateType:'+event.updateType+', target'+event.target,4,'viewUpdate','CanvasBranchView'); + + if(!_eventsEnabled && event.updateType != 'SET_ACTIVE') { + Debugger.log('Events disabled.'+event.target,4,'viewUpdate','CanvasBranchView'); + return; + } + var _model = event.target; Debugger.log("_model instance: " + (_model instanceof MonitorModel), Debugger.CRITICAL, "viewUpdate", "CanvasBranchView"); @@ -173,6 +181,7 @@ Debugger.log('isCanvasModel:'+isCanvasModel, Debugger.CRITICAL,'viewUpdate','CanvasBranchView'); Debugger.log('isMonitorModel:'+isMonitorModel,Debugger.CRITICAL,'viewUpdate','CanvasBranchView'); + switch (event.updateType){ case 'POSITION': setPosition(_model); @@ -212,7 +221,6 @@ highlightActivity(_model); break; case 'DRAW_ALL' : - Debugger.log("received draw all. " + event.tabID + " locked: " + MonitorModel(_model).locked, Debugger.CRITICAL, "viewUpdate", "CanvasBranchView"); if (!MonitorModel(_model).locked){ drawAll(event.data, _model); } @@ -222,8 +230,12 @@ transparentCover._visible = (event.data == this) ? false : true; if(event.data == this) { + _eventsEnabled = true; + getController().activityClick(this.startHub); getController().activityRelease(this.startHub); + } else { + _eventsEnabled = false; } break; @@ -370,6 +382,7 @@ else model.getCanvas().addBin(model.activeView); model.broadcastViewUpdate("SIZE"); + } public function localOnReleaseOutside():Void{ @@ -520,6 +533,7 @@ var r = cm.activitiesDisplayed.remove(a.activityUIID); r.removeMovieClip(); + var s:Boolean = (r==null) ? false : true; return s; @@ -556,11 +570,19 @@ * @return */ private function drawBranch(b:Branch, cm):Boolean{ + Debugger.log("br activity: " + activity.activityUIID, Debugger.CRITICAL, "drawBranch", "CanvasBranchView"); + Debugger.log("drawing branch: " + b.branchUIID, Debugger.CRITICAL, "drawBranch", "CanvasBranchView"); + Debugger.log("branch target: " + b.targetUIID, Debugger.CRITICAL, "drawBranch", "CanvasBranchView"); + + Debugger.log("branch dir: " + b.direction, Debugger.CRITICAL, "drawBranch", "CanvasBranchView"); + Debugger.log("isActivityOnLayer: " + isActivityOnLayer(cm.activitiesDisplayed.get(b.targetUIID), this.activityLayers), Debugger.CRITICAL, "drawBranch", "CanvasBranchView"); + if(!isActivityOnLayer(cm.activitiesDisplayed.get(b.targetUIID), this.activityLayers)) if((b.direction == BranchConnector.DIR_SINGLE && b.targetUIID == activity.activityUIID)) continue; - else return false; + else + return false; var cbv = CanvasBranchView(this); var cbc = getController(); @@ -574,7 +596,7 @@ var newBranch_mc:MovieClip = branchLayer.createChildAtDepth("BranchConnector",DepthManager.kTop,{_branch:b, controller:cbc, _canvasBranchView:cbv}); cm.branchesDisplayed.put(b.branchUIID,newBranch_mc); - Debugger.log('drawn a branch:'+b.branchUIID+','+newBranch_mc,Debugger.GEN,'drawBranch','CanvasView'); + Debugger.log('drawn a branch:'+b.branchUIID+','+newBranch_mc,Debugger.GEN,'drawBranch','CanvasBranchView'); if(b.direction == BranchConnector.DIR_FROM_START) { cm.moveActivitiesToBranchSequence(b.targetUIID, b.sequenceActivity); @@ -636,6 +658,8 @@ * @return */ private function removeBranch(b:Branch,cm){ + Debugger.log("activeView: " + cm.isActiveView(this), Debugger.CRITICAL, "removeBranch", "CanvasBranchView"); + if(!cm.isActiveView(this)) return false; @@ -646,6 +670,8 @@ var r = cm.branchesDisplayed.remove(b.branchUIID); r.removeMovieClip(); + if(cm instanceof MonitorModel) cm.ddm.branches.remove(b.branchUIID); + var s:Boolean = (r==null) ? false : true; return s; } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as =================================================================== diff -u -rc8a3ab790f64597f8a37e88e5805014136695b16 -rf65686830c50dda1e327b1169889198c57044815 --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision c8a3ab790f64597f8a37e88e5805014136695b16) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision f65686830c50dda1e327b1169889198c57044815) @@ -389,14 +389,9 @@ * @usage * @return */ - public function clearDesign(tabID:Number, learner:Object){ - if (learner != null || learner != undefined){ - var drawLearner:Object = new Object(); - drawLearner = learner; - } - - //porobbably need to get a bit more granular + public function clearDesign(){ Debugger.log('Running',Debugger.GEN,'clearDesign','MonitorModel'); + var mmActivity_keys:Array = _activitiesDisplayed.keys(); var longest = mmActivity_keys.length; @@ -415,6 +410,7 @@ var mmTransition_keys:Array = _transitionsDisplayed.keys(); var transLongest = mmTransition_keys.length; + //chose which array we are going to loop over var transIndexArray:Array; transIndexArray = mmTransition_keys; @@ -548,16 +544,22 @@ public function addNewBranch(sequence:SequenceActivity, branchingActivity:BranchingActivity, isDefault:Boolean):Void { Debugger.log("sequence.firstActivityUIID: "+sequence.firstActivityUIID, Debugger.CRITICAL, "addNewBranch", "MonitorModel"); + + if(sequence.firstActivityUIID == null && app.getMonitor().ddm.getComplexActivityChildren(sequence.activityUIID).length <= 0) { + + var b:Branch = new Branch(app.getMonitor().ddm.newUIID(), BranchConnector.DIR_SINGLE, branchingActivity.activityUIID, null, sequence, app.getMonitor().ddm.learningDesignID); + app.getMonitor().ddm.addBranch(b); - if(sequence.firstActivityUIID != null) { + } else if(sequence.firstActivityUIID != null) { + var b:Branch = new Branch(app.getMonitor().ddm.newUIID(), BranchConnector.DIR_FROM_START, app.getMonitor().ddm.getActivityByUIID(sequence.firstActivityUIID).activityUIID, branchingActivity.activityUIID, sequence, app.getMonitor().ddm.learningDesignID); app.getMonitor().ddm.addBranch(b); Debugger.log("sequence.stopAfterActivity: "+sequence.stopAfterActivity, Debugger.CRITICAL, "addNewBranch", "MonitorModel"); + // TODO: review if(!sequence.stopAfterActivity) { b = new Branch(app.getMonitor().ddm.newUIID(), BranchConnector.DIR_TO_END, app.getMonitor().ddm.getActivityByUIID(this.getLastActivityUIID(sequence.firstActivityUIID)).activityUIID, branchingActivity.activityUIID, sequence, app.getMonitor().ddm.learningDesignID); - app.getMonitor().ddm.addBranch(b); } @@ -621,13 +623,13 @@ } - /** - * get the design in the DesignDataModel and update the Monitor Model accordingly. - * NOTE: Design elements are added to the DDM here. - * - * @usage - * @return - */ + /** + * get the design in the DesignDataModel and update the Monitor Model accordingly. + * NOTE: Design elements are added to the DDM here. + * + * @usage + * @return + */ public function drawDesign(tabID:Number, learner:Object){ var eventArr:Array = new Array(); @@ -640,16 +642,16 @@ var drawLearner:Object = new Object(); drawLearner = learner; } - - //go through the design and get the activities and transitions - var dataObj:Object; + + //go through the design and get the activities and transitions + var dataObj:Object; Debugger.log("ddm_activity keys: "+ddmActivity_keys.length, Debugger.GEN, "drawDesign", "MonitorModel"); //loop through Debugger.log("indexArray.length: "+indexArray.length, Debugger.CRITICAL, "drawDesign", "MonitorModel"); - for(var i=0; i