Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -r5a7eca0c6ef2deca52b32c88459666cc9ee12889 -r9cb49c5c64919ebee4c5230be002beadb2af932f Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -r5a7eca0c6ef2deca52b32c88459666cc9ee12889 -r9cb49c5c64919ebee4c5230be002beadb2af932f Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as =================================================================== diff -u -r7a9b710e06a36df574d235d7afc61665580249ec -r9cb49c5c64919ebee4c5230be002beadb2af932f --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision 7a9b710e06a36df574d235d7afc61665580249ec) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision 9cb49c5c64919ebee4c5230be002beadb2af932f) @@ -210,6 +210,12 @@ case 'SET_ACTIVE': Debugger.log('setting activie :' + event.updateType + " event.data: " + event.data + " condition: " + (event.data == this),Debugger.CRITICAL,'update','org.lamsfoundation.lams.CanvasBranchView'); transparentCover._visible = (event.data == this) ? false : true; + + if(event.data == this) { + getController().activityClick(this.startHub); + getController().activityRelease(this.startHub); + } + break; default : Debugger.log('unknown update type :' + event.updateType,Debugger.CRITICAL,'update','org.lamsfoundation.lams.CanvasBranchView'); @@ -317,8 +323,6 @@ mx.transitions.TransitionManager.start(this, {type:mx.transitions.Zoom, direction:0, duration:1, easing:mx.transitions.easing.Bounce.easeOut}); - - getController().activityRelease(this.startHub); } private function close():Void { @@ -357,9 +361,9 @@ * @return Boolean - successfullit */ private function drawActivity(a:Activity, cm):Boolean { + Debugger.log("isActiveView: " + cm.isActiveView(this), Debugger.CRITICAL, "drawActivity", "CanvasBranchView"); + if(!cm.isActiveView(this) && !cm.findParent(a, activity)) return false; - if(!cm.isActiveView(this)) return false; - var cbv = CanvasBranchView(this); var cbc = getController(); var fromModuleTab:String = null; @@ -431,7 +435,7 @@ */ private function hideActivity(a:Activity, cm):Boolean { - if(!cm.isActiveView(this)) return false; + if(!cm.isActiveView(this) && !cm.findParent(a, activity)) return false; var cbv = CanvasBranchView(this); var cbc = getController(); @@ -455,8 +459,8 @@ * @param cm - Refernce to the model * @return Boolean - successfull */ - private function removeActivity(a:Activity,cm):Boolean{ - if(!cm.isActiveView(this)) return false; + private function removeActivity(a:Activity, cm):Boolean{ + if(!cm.isActiveView(this) && !cm.findParent(a, activity)) return false; var r = cm.activitiesDisplayed.remove(a.activityUIID); r.removeMovieClip(); @@ -497,8 +501,14 @@ */ private function drawBranch(b:Branch, cm):Boolean{ - if(!cm.isActiveView(this)) return false; + Debugger.log("branch: " + b, Debugger.CRITICAL, "drawBranch", "CanvasBranchView"); + Debugger.log("sequence: " + b.sequenceActivity.activityUIID, Debugger.CRITICAL, "drawBranch", "CanvasBranchView"); + Debugger.log("isActiveView: " + cm.isActiveView(this), Debugger.CRITICAL, "drawBranch", "CanvasBranchView"); + Debugger.log("findParent: " + cm.findParent(b.sequenceActivity, activity), Debugger.CRITICAL, "drawBranch", "CanvasBranchView"); + + if(!cm.isActiveView(this) && !cm.findParent(b.sequenceActivity, activity)) return false; + var cbv = CanvasBranchView(this); var cbc = getController(); @@ -569,7 +579,7 @@ * @return */ private function removeBranch(b:Branch,cm){ - if(!cm.isActiveView(this)) return false; + if(!cm.isActiveView(this) && !cm.findParent(b.sequenceActivity, activity)) return false; if(b.direction == BranchConnector.DIR_FROM_START) b.sequenceActivity.firstActivityUIID = null; else if(b.direction == BranchConnector.DIR_TO_END) b.sequenceActivity.stopAfterActivity = true; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== diff -u -rc99ac4e72ae3c8db8627c38f7e31afd0f6e469d8 -r9cb49c5c64919ebee4c5230be002beadb2af932f --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision c99ac4e72ae3c8db8627c38f7e31afd0f6e469d8) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 9cb49c5c64919ebee4c5230be002beadb2af932f) @@ -230,6 +230,7 @@ // refresh any branches connected to activities //TODO: refresh the branches as you drag... + var myBranches = _canvasModel.getCanvas().ddm.getBranchesForActivityUIID(ca.activity.activityUIID); myBranches = myBranches.myBranches; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasHelper.as =================================================================== diff -u -r96b7d23e6ff1d27f5f2637fa1c1dfe471861fa63 -r9cb49c5c64919ebee4c5230be002beadb2af932f --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasHelper.as (.../CanvasHelper.as) (revision 96b7d23e6ff1d27f5f2637fa1c1dfe471861fa63) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasHelper.as (.../CanvasHelper.as) (revision 9cb49c5c64919ebee4c5230be002beadb2af932f) @@ -527,10 +527,10 @@ var _branchView_mc:MovieClip = _canvasView_mc.content.createChildAtDepth("canvasBranchView", DepthManager.kTop, {_x: cx, _y: cy, _canvasBranchingActivity:ba, _open:isVisible}); var branchView:CanvasBranchView = CanvasBranchView(_branchView_mc); - branchView.init(canvasModel,undefined); + branchView.init(canvasModel, undefined); //Add listener to view so that we know when it's loaded - branchView.addEventListener('load', Proxy.create(this,viewLoaded)); + branchView.addEventListener('load', Proxy.create(this, viewLoaded)); canvasModel.addObserver(branchView); Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as =================================================================== diff -u -rf529b671aab92c3a3ac9d7aff0a435a71060ff61 -r9cb49c5c64919ebee4c5230be002beadb2af932f --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as (.../CanvasModel.as) (revision f529b671aab92c3a3ac9d7aff0a435a71060ff61) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as (.../CanvasModel.as) (revision 9cb49c5c64919ebee4c5230be002beadb2af932f) @@ -1151,7 +1151,7 @@ if(r_branch == "NEW"){ //NOTE!: we are passing in a ref to the tns in the ddm so if we change any props of this, we are changing the ddm - broadcastViewUpdate("DRAW_BRANCH",ddmBranch); + broadcastViewUpdate("DRAW_BRANCH", ddmBranch); }else if(r_branch == "DELETE"){ broadcastViewUpdate("REMOVE_BRANCH",cmBranch); } @@ -1537,4 +1537,13 @@ public function get lastBranchActionType():Number { return _lastBranchActionType; } + + public function findParent(a:Activity, b:Activity):Boolean { + if(a.parentUIID == b.activityUIID) + return true; + else if(a.parentUIID == null) + return false; + else + return findParent(_cv.ddm.getActivityByUIID(a.parentUIID), b); + } } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as =================================================================== diff -u -r345e61bed6622f37845b0056796ce63d60ac0640 -r9cb49c5c64919ebee4c5230be002beadb2af932f --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision 345e61bed6622f37845b0056796ce63d60ac0640) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision 9cb49c5c64919ebee4c5230be002beadb2af932f) @@ -1089,6 +1089,15 @@ public function set currentBranchingActivity(a:Object) { _currentBranchingActivity = a; - } + } + public function findParent(a:Activity, b:Activity):Boolean { + if(a.parentUIID == b.activityUIID) + return true; + else if(a.parentUIID == null) + return false; + else + return findParent(_activeSeq.getLearningDesignModel().getActivityByUIID(a.parentUIID), b); + } + }