Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -r76462577506141913c7c593f6dab92a5651ffd76 -rfc0f0136963cabbd4cad612035c80dc35c5717ff Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -r76462577506141913c7c593f6dab92a5651ffd76 -rfc0f0136963cabbd4cad612035c80dc35c5717ff Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as =================================================================== diff -u -rda1644d8e66121854689bf4c74caa46457502601 -rfc0f0136963cabbd4cad612035c80dc35c5717ff --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision da1644d8e66121854689bf4c74caa46457502601) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision fc0f0136963cabbd4cad612035c80dc35c5717ff) @@ -1091,6 +1091,7 @@ myBranches.push(br[i]); hasBranches = true; } + if(target != null && hub != null){ break; }else{ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as =================================================================== diff -u -r7ced9db5725f36fd33877261bd003223b2f834f1 -rfc0f0136963cabbd4cad612035c80dc35c5717ff --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision 7ced9db5725f36fd33877261bd003223b2f834f1) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision fc0f0136963cabbd4cad612035c80dc35c5717ff) @@ -84,6 +84,7 @@ private var _learnerContainer_mc:MovieClip; private var _open:Boolean; + private var _isBranchChild:Boolean; /** * Constructor @@ -127,6 +128,8 @@ if(_cm != null) _cm.addEventListener('viewUpdate', Proxy.create(this, viewUpdate)); //if(_mm != null) _mm.addEventListener('viewUpdate', Proxy.create(this, viewUpdate)); + _isBranchChild = (_cm.activeView instanceof CanvasBranchView); + MovieClipUtils.doLater(Proxy.create(this, draw)); } @@ -338,8 +341,11 @@ else model.getMonitor().closeBranchView(); + Debugger.log("model.activeView : " + model.activeView, Debugger.CRITICAL, "close", "CanvasBranchView"); + if(model instanceof CanvasModel) - model.getCanvas().addBin(model.activeView); + if(model.activeView instanceof CanvasBranchView) model.getCanvas().addBin(model.activeView.activityLayer); + else model.getCanvas().addBin(model.activeView); model.broadcastViewUpdate("SIZE"); } @@ -348,8 +354,11 @@ } private function addSequence(a:SequenceActivity, cm:CanvasModel):Boolean{ - defaultSequenceActivity = a; - + if(a.parentUIID == activity.activityUIID) + defaultSequenceActivity = a; + else + return false; + return true; } @@ -361,8 +370,7 @@ * @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(this.defaultSequenceActivity.activityUIID != a.parentUIID) return false; var cbv = CanvasBranchView(this); var cbc = getController(); @@ -435,8 +443,9 @@ */ private function hideActivity(a:Activity, cm):Boolean { - if(!cm.isActiveView(this) && !cm.findParent(a, activity)) return false; + if(this.defaultSequenceActivity.activityUIID != a.parentUIID) return false; + var cbv = CanvasBranchView(this); var cbc = getController(); @@ -460,7 +469,7 @@ * @return Boolean - successfull */ private function removeActivity(a:Activity, cm):Boolean{ - if(!cm.isActiveView(this) && !cm.findParent(a, activity)) return false; + if(this.defaultSequenceActivity.activityUIID != a.parentUIID) return false; if(a.isBranchingActivity()) cm.activitiesDisplayed.get(a.activityUIID).branchView.removeMovieClip(); @@ -506,11 +515,10 @@ 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(!isActivityOnLayer(cm.activitiesDisplayed.get(b.targetUIID), this.activityLayer)) return false; - if(!cm.isActiveView(this) && !cm.findParent(b.sequenceActivity, activity)) return false; + //if(!cm.isActiveView(this) && !cm.findParent(b.sequenceActivity, activity)) return false; var cbv = CanvasBranchView(this); var cbc = getController(); @@ -582,7 +590,8 @@ * @return */ private function removeBranch(b:Branch,cm){ - if(!cm.isActiveView(this) && !cm.findParent(b.sequenceActivity, activity)) return false; + if(!cm.isActiveView(this)) 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; @@ -633,17 +642,24 @@ * @param cm Canvas model object */ private function setPosition(cm):Void{ - var ba = cm.currentBranchingActivity; + var ba = cm.activitiesDisplayed.get(activity.activityUIID); - var cx:Number = ba._x + ba.getVisibleWidth()/2; - var cy:Number = ba._y + ba.getVisibleHeight()/2; + if(ba != null) { + var cx:Number = ba._x + ba.getVisibleWidth()/2; + var cy:Number = ba._y + ba.getVisibleHeight()/2; + + Debugger.log("current: " + ba.activity.activityUIID, Debugger.CRITICAL, "setPosition", "CanvasBranchView"); + + if(_isBranchChild) + Debugger.log("bc cx: " + cx + " // bc cy: " + cy, Debugger.CRITICAL, "setPosition", "CanvasBranchView"); + + canvas_scp._x = (_isBranchChild) ? -cx : -cx+hSpace; + canvas_scp._y = (_isBranchChild) ? -cy : -cy+vSpace; + + close_mc._x = bkg_pnl._x + bkg_pnl.width - close_mc._width - 10; + close_mc._y = bkg_pnl._y + 10; + } - canvas_scp._x = -cx+hSpace; - canvas_scp._y = -cy+vSpace; - - close_mc._x = bkg_pnl._x + bkg_pnl.width - close_mc._width - 10; - close_mc._y = bkg_pnl._y + 10; - } /** Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as =================================================================== diff -u -rc41b98701f4bbfe9e71e5653ac295ea5c1edf5c3 -rfc0f0136963cabbd4cad612035c80dc35c5717ff --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as (.../Canvas.as) (revision c41b98701f4bbfe9e71e5653ac295ea5c1edf5c3) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as (.../Canvas.as) (revision fc0f0136963cabbd4cad612035c80dc35c5717ff) @@ -399,10 +399,9 @@ canvasModel.removeActivity(taParent); canvasModel.removeActivity(actToAdd.activityUIID); + canvasModel.setDirty(); } - canvasModel.setDirty(); - } /** Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== diff -u -r44e31ab62e679f0c173f0269d7ee6d306ca6eb2c -rfc0f0136963cabbd4cad612035c80dc35c5717ff --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 44e31ab62e679f0c173f0269d7ee6d306ca6eb2c) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision fc0f0136963cabbd4cad612035c80dc35c5717ff) @@ -352,14 +352,14 @@ // refresh any branches connected to activities //TODO: refresh the branches as you drag... + if(ca == _canvasModel.activeView.startHub || ca == _canvasModel.activeView.endHub) { + var sequences:Array = _canvasModel.getCanvas().ddm.getComplexActivityChildren(ca.activity.activityUIID); + + for(var i=0; i