Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -rc8daa528b2fc8459b73d048ddfeb3c0daf4f78c3 -r434299dda2df6be5bd2f7dff51ed8872a3469058 Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -rc8daa528b2fc8459b73d048ddfeb3c0daf4f78c3 -r434299dda2df6be5bd2f7dff51ed8872a3469058 Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as =================================================================== diff -u -rc8daa528b2fc8459b73d048ddfeb3c0daf4f78c3 -r434299dda2df6be5bd2f7dff51ed8872a3469058 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision c8daa528b2fc8459b73d048ddfeb3c0daf4f78c3) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision 434299dda2df6be5bd2f7dff51ed8872a3469058) @@ -59,6 +59,7 @@ private var _canvasBranchView:CanvasBranchView; private var _canvasBranchingActivity:CanvasActivity; + private var _prevActiveView; private var canvas_scp:ScrollPane; @@ -384,7 +385,7 @@ public function localOnRelease():Void{ Debugger.log("close called", Debugger.CRITICAL, "localOnRelease", "CanvasBranchView"); - model.closeAllComplexViews(); + model.closeAllComplexViews(this); close(); } @@ -447,18 +448,21 @@ TransitionManager.start(this, {type:mx.transitions.Zoom, direction:1, duration:0.5, easing:mx.transitions.easing.Strong.easeIn}); + Debugger.log("_prevActiveView: "+ _prevActiveView, Debugger.CRITICAL, "close", "CanvasBranchView"); + if(model instanceof CanvasModel) { - model.getCanvas().closeBranchView(); + model.getCanvas().closeBranchView(_prevActiveView); } else { model.getMonitor().getMV().getMonitorTabView().showAssets(true); - model.getMonitor().closeBranchView(); + model.getMonitor().closeBranchView(_prevActiveView); } Debugger.log("model.activeView : " + model.activeView, Debugger.CRITICAL, "finishedClose", "CanvasBranchView"); - if(model instanceof CanvasModel) { - if(model.activeView instanceof CanvasBranchView) model.getCanvas().addBin(model.activeView.binLayer); - else model.getCanvas().addBin(model.activeView); + var targetView = findBinTargetView(_prevActiveView); + if(model instanceof CanvasModel && targetView != null) { + if(targetView instanceof CanvasBranchView) model.getCanvas().addBin(targetView.binLayer); + else model.getCanvas().addBin(targetView); } model.broadcastViewUpdate("SIZE"); @@ -470,6 +474,14 @@ } + private function findBinTargetView(targetView):MovieClip { + if(targetView instanceof CanvasComplexView) { + return findBinTargetView(targetView.prevActiveView); + } else { + return targetView; + } + } + public function localOnReleaseOutside():Void{ } @@ -989,4 +1001,8 @@ public function set binLayer(a:MovieClip):Void { _binLayer_mc = a; } + + public function set prevActiveView(a:MovieClip):Void { + _prevActiveView = a; + } } \ No newline at end of file Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as =================================================================== diff -u -rbfb4d9a9b1992d55a06627289b169c9188ab12ff -r434299dda2df6be5bd2f7dff51ed8872a3469058 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as (.../CanvasComplexView.as) (revision bfb4d9a9b1992d55a06627289b169c9188ab12ff) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as (.../CanvasComplexView.as) (revision 434299dda2df6be5bd2f7dff51ed8872a3469058) @@ -349,4 +349,8 @@ return _complexActivity; } + public function get prevActiveView():MovieClip { + return _prevActiveView; + } + } \ No newline at end of file Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasHelper.as =================================================================== diff -u -rb3d9e6021b71dcb7f55a13a2508e80a21141baf9 -r434299dda2df6be5bd2f7dff51ed8872a3469058 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasHelper.as (.../CanvasHelper.as) (revision b3d9e6021b71dcb7f55a13a2508e80a21141baf9) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasHelper.as (.../CanvasHelper.as) (revision 434299dda2df6be5bd2f7dff51ed8872a3469058) @@ -164,7 +164,7 @@ }else{ Debugger.log('Set design failed as old design could not be cleared',Debugger.CRITICAL,"setDesign",'Canvas'); } - } + } /** * Clears the design in the canvas.but leaves other state variables (undo etc..) @@ -185,12 +185,10 @@ checkValidDesign(); checkReadOnlyDesign(); - - if(canvasModel.activeView instanceof CanvasComplexView) { - canvasModel.closeAllComplexViews(); - } - if(canvasModel.activeView instanceof CanvasBranchView) { + if(canvasModel.activeView != null) { + canvasModel.closeAllComplexViews(); + for(var i=0; i 0) ? CanvasActivity(canvasModel.openBranchingActivities[canvasModel.openBranchingActivities.length-1]) : null; + + if(prevActiveView != null) + canvasModel.activeView = prevActiveView; + else + canvasModel.activeView = (parentBranching.activity.isBranchingActivity()) ? parentBranching.activity.branchView : canvasView; - //var poppedActivity = monitorModel.getMonitor().ddm.getActivityByUIID(poppedActivityUIID); - - //if(canvasModel.activeView.activity.parentUIID != null) - // parentBranching = CanvasActivity(canvasModel.activitiesDisplayed.get(_ddm.getActivityByUIID(canvasModel.activeView.activity.parentUIID).parentUIID)); - - //Debugger.log("parentUIID: " + canvasModel.activeView.activity.parentUIID, Debugger.CRITICAL, "closeBranchView", "CanvasHelper"); - - //Debugger.log("is parentBranching: " + parentBranching.activity.isBranchingActivity(), Debugger.CRITICAL, "closeBranchView", "CanvasHelper"); - //Debugger.log("parent branchView: " + parentBranching.activity.branchView, Debugger.CRITICAL, "closeBranchView", "CanvasHelper"); - - canvasModel.activeView = (parentBranching.activity.isBranchingActivity()) ? parentBranching.activity.branchView : canvasView; canvasModel.currentBranchingActivity = (parentBranching.activity.isBranchingActivity()) ? parentBranching : null; Debugger.log("activeView: " + canvasModel.activeView, Debugger.CRITICAL, "closeBranchView", "CanvasHelper"); @@ -572,8 +564,10 @@ var isVisible:Boolean = (visible == null) ? true : visible; var target:MovieClip = (canvasModel.activeView instanceof CanvasBranchView) ? canvasModel.activeView.branchContent : _canvasView_mc.branchContent; + + Debugger.log("canvasModel.activeView: "+ canvasModel.activeView, Debugger.CRITICAL, "openBranchView", "CanvasHelper"); - var _branchView_mc:MovieClip = target.createChildAtDepth("canvasBranchView", target.getNextHighestDepth(), {_x: cx, _y: cy, _canvasBranchingActivity:ba, _open:isVisible}); + var _branchView_mc:MovieClip = target.createChildAtDepth("canvasBranchView", target.getNextHighestDepth(), {_x: cx, _y: cy, _canvasBranchingActivity:ba, _open:isVisible, _prevActiveView: canvasModel.activeView}); var branchView:CanvasBranchView = CanvasBranchView(_branchView_mc); branchView.init(canvasModel, undefined); Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as =================================================================== diff -u -ra08430b2986465ef9db0b90b21996d49a51b3b5d -r434299dda2df6be5bd2f7dff51ed8872a3469058 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as (.../CanvasModel.as) (revision a08430b2986465ef9db0b90b21996d49a51b3b5d) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as (.../CanvasModel.as) (revision 434299dda2df6be5bd2f7dff51ed8872a3469058) @@ -1130,6 +1130,7 @@ } if(ba.activity.branchView != null) { + ba.activity.branchView.prevActiveView = activeView; activeView = (visible) ? ba.activity.branchView : activeView; ba.activity.branchView.setOpen(visible); ba.activity.branchView.open(); Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasSuperModel.as =================================================================== diff -u -rb045886e86cb40c9f12c589a7e1000ec3c89177a -r434299dda2df6be5bd2f7dff51ed8872a3469058 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasSuperModel.as (.../CanvasSuperModel.as) (revision b045886e86cb40c9f12c589a7e1000ec3c89177a) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasSuperModel.as (.../CanvasSuperModel.as) (revision 434299dda2df6be5bd2f7dff51ed8872a3469058) @@ -1008,9 +1008,15 @@ } } - public function closeAllComplexViews():Void { - while(activeView instanceof CanvasComplexView) { - CanvasComplexView(activeView).close(); + public function closeAllComplexViews(stopTarget:MovieClip):Void { + var tempActiveView = activeView; + + while(tempActiveView != null) { + if(tempActiveView instanceof CanvasComplexView) + CanvasComplexView(tempActiveView).close(); + + if(tempActiveView == stopTarget) return; + tempActiveView = tempActiveView._prevActiveView; } }