Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -r031262744a76013a5fc13b63c4b42acb28db04fc -r43bef28b390ac8bec99626dc15c94d577875f046 Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -r031262744a76013a5fc13b63c4b42acb28db04fc -r43bef28b390ac8bec99626dc15c94d577875f046 Binary files differ Index: lams_flash/src/central/flash/lams_authoring.fla =================================================================== diff -u -r6e921f0eba97c377550ad11dbe6e86fb825c3067 -r43bef28b390ac8bec99626dc15c94d577875f046 Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as =================================================================== diff -u -r7a07722b14620a94c541b0c18f36172fb69a8ced -r43bef28b390ac8bec99626dc15c94d577875f046 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision 7a07722b14620a94c541b0c18f36172fb69a8ced) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision 43bef28b390ac8bec99626dc15c94d577875f046) @@ -234,10 +234,14 @@ drawAll(event.data, _model); break; case 'SET_ACTIVE': - Debugger.log('setting activie :' + event.updateType + " event.data: " + event.data + " condition: " + (event.data == this),Debugger.CRITICAL,'update','org.lamsfoundation.lams.CanvasBranchView'); + Debugger.log('setting activie :' + event.updateType + " event.data: " + event.data.activity.activityUIID + " condition: " + (event.data.activity.activityUIID == this.activity.activityUIID),Debugger.CRITICAL,'update','org.lamsfoundation.lams.CanvasBranchView'); + Debugger.log('this object :' + this.activity.activityUIID,Debugger.CRITICAL,'update','org.lamsfoundation.lams.CanvasBranchView'); + transparentCover._visible = (event.data == this) ? false : true; - if(event.data == this) { + Debugger.log("is open: " + _isOpen, Debugger.CRITICAL, "viewUpdate", "CanvasBranchView"); + + if(event.data.activity.activityUIID == this.activity.activityUIID) { _eventsEnabled = true; getController().activityClick(this.startHub); @@ -277,15 +281,16 @@ transparentCover = content.createClassObject(Panel, "_transparentCover_mc", content.getNextHighestDepth(), {_visible: false, enabled: false, _alpha: 50}); transparentCover.onPress = null; - branchContent = content.createEmptyMovieClip("_branch_content_mc", content.getNextHighestDepth()); + complexViewer = content.createEmptyMovieClip("_complex_viewer_mc", content.getNextHighestDepth()); + branchContent = content.createEmptyMovieClip("_branch_content_mc", DepthManager.kTopmost); bkg_pnl.onRelease = function(){ Application.getInstance().getCanvas().getCanvasView().getController().canvasRelease(this); } bkg_pnl.useHandCursor = false; - close_mc = content.attachMovie("collapse_mc", "close_mc", DepthManager.kTopmost); + close_mc = content.attachMovie("collapse_mc", "close_mc", DepthManager.kTop); close_mc.onRelease = Proxy.create(this, localOnRelease); close_mc.onReleaseOutside = Proxy.create(this, localOnReleaseOutside); @@ -307,7 +312,6 @@ if(model.isDirty) model.refreshDesign(); - } private function setupConnectorHubs() { @@ -374,6 +378,7 @@ } public function localOnRelease():Void{ + Debugger.log("close called", Debugger.CRITICAL, "localOnRelease", "CanvasBranchView"); close(); } @@ -413,8 +418,8 @@ } private function close():Void { - if(model instanceof CanvasModel) model.getCanvas().hideBin(); - model.selectedItem = null; + if(model instanceof CanvasModel) model.getCanvas().hideBin(); //typo + model.selectedItem = null; var bkeys:Array = model.branchesDisplayed.keys(); @@ -427,25 +432,29 @@ } - mx.transitions.TransitionManager.start(this, - {type:mx.transitions.Zoom, - direction:1, duration:0.5, easing:mx.transitions.easing.Strong.easeIn}); - - if(model instanceof CanvasModel) + TransitionManager.start(this, {type:mx.transitions.Zoom, direction:1, duration:0.5, easing:mx.transitions.easing.Strong.easeIn}); + + if(model instanceof CanvasModel) { model.getCanvas().closeBranchView(); - else { + } else { model.getMonitor().getMV().getMonitorTabView().showAssets(true); model.getMonitor().closeBranchView(); } - Debugger.log("model.activeView : " + model.activeView, Debugger.CRITICAL, "close", "CanvasBranchView"); + Debugger.log("model.activeView : " + model.activeView, Debugger.CRITICAL, "finishedClose", "CanvasBranchView"); - if(model instanceof CanvasModel) + if(model instanceof CanvasModel) { if(model.activeView instanceof CanvasBranchView) model.getCanvas().addBin(model.activeView.activityLayer); else model.getCanvas().addBin(model.activeView); + } model.broadcastViewUpdate("SIZE"); + + _isOpen = false; + + Debugger.log("closing branch view... : " + model.activeView.activity.activityUIID, Debugger.CRITICAL, "close", "CanvasBranchView"); + } public function localOnReleaseOutside():Void{ @@ -478,7 +487,7 @@ * @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); @@ -959,12 +968,4 @@ public function set isOpen(a:Boolean):Void { _isOpen = a; } - - /*public function getParentScrollVPosition():Number { - return (_parent instanceof CanvasBranchView) ? CanvasBranchView(_parent).getScrollVPosition() : CanvasView(_parent).getScrollVPosition(); - } - - public function getScrollVPosition():Number { - return canvas_scp.vPosition; - }*/ } \ No newline at end of file Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasActivity.as =================================================================== diff -u -r031d2ed6bc0f7a199fb16d6caeef600f30780549 -r43bef28b390ac8bec99626dc15c94d577875f046 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasActivity.as (.../CanvasActivity.as) (revision 031d2ed6bc0f7a199fb16d6caeef600f30780549) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasActivity.as (.../CanvasActivity.as) (revision 43bef28b390ac8bec99626dc15c94d577875f046) @@ -63,6 +63,7 @@ private var _canvasController:CanvasController; private var _canvasView:CanvasView; private var _canvasBranchView:CanvasBranchView; + private var _canvasComplexView:CanvasComplexView; private var _monitorController:MonitorController; private var _monitorView; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as =================================================================== diff -u --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as (revision 0) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasComplexView.as (revision 43bef28b390ac8bec99626dc15c94d577875f046) @@ -0,0 +1,321 @@ +/*************************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * ************************************************************************ + */ + +import org.lamsfoundation.lams.common.util.*; +import org.lamsfoundation.lams.common.ui.*; +import org.lamsfoundation.lams.common.style.*; +import org.lamsfoundation.lams.common.dict.*; +import org.lamsfoundation.lams.common.mvc.*; +import org.lamsfoundation.lams.common.CommonCanvasView; +import org.lamsfoundation.lams.authoring.cv.*; +import org.lamsfoundation.lams.authoring.*; +import org.lamsfoundation.lams.monitoring.mv.MonitorModel; +import org.lamsfoundation.lams.monitoring.mv.MonitorController; +import org.lamsfoundation.lams.monitoring.mv.tabviews.MonitorTabView; + +import mx.controls.*; +import mx.containers.*; +import mx.managers.*; +import mx.utils.*; + +/** +*Authoring view for the canvas +* Relects changes in the CanvasModel +*/ + +class org.lamsfoundation.lams.authoring.cv.CanvasComplexView extends CommonCanvasView { + + private var _tm:ThemeManager; + + private var _cm:CanvasModel; + private var _mm:MonitorModel; + + private var _canvasComplexView:CanvasComplexView; + private var _complexActivity:CanvasActivity; + + private var canvas_scp:ScrollPane; + + private var lastScreenWidth:Number = 500; + private var lastScreenHeight:Number = 300; + + private var activitiesDisplayed:Hashtable; + + /** + * Constructor + */ + function CanvasComplexView(){ + _canvasComplexView = this; + _tm = ThemeManager.getInstance(); + + activitiesDisplayed = new Hashtable("activitiesDisplayed"); + + //Init for event delegation + mx.events.EventDispatcher.initialize(this); + } + + /** + * Called to initialise Canvas. Called by the Canvas container + */ + public function init(m:Observable, c:Controller){ + //Invoke superconstructor, which sets up MVC relationships. + super (m, c); + + _cm = (m instanceof CanvasModel) ? CanvasModel(m) : null; + _mm = (m instanceof MonitorModel) ? MonitorModel(m) : null; + + //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)); + + MovieClipUtils.doLater(Proxy.create(this, draw)); + } + + /** + * Recieved update events from the MonitorModel. Dispatches to relevent handler depending on update.Type + * @usage + * @param event + */ + public function update (o:Observable, infoObj:Object):Void{ + var mm:MonitorModel = MonitorModel(o); + infoObj.target = mm; + + viewUpdate(infoObj); + } + + /** + * Recieved update events from the CanvasModel. Dispatches to relevent handler depending on update.Type + * @usage + * @param event + */ + public function viewUpdate(event:Object):Void{ + Debugger.log('Recived an Event dispather UPDATE!, updateType:'+event.updateType+', target'+event.target,4,'viewUpdate','CanvasView'); + var cm:CanvasModel = event.target; + + switch (event.updateType){ + case 'POSITION' : + setPosition(cm); + break; + case 'SIZE' : + setSize(cm); + break; + case 'DRAW_ACTIVITY': + drawActivity(event.data,cm); + break; + case 'REMOVE_ACTIVITY': + removeActivity(event.data,cm); + break; + case 'SELECTED_ITEM' : + highlightActivity(cm); + break; + case 'SET_ACTIVE' : + Debugger.log('setting active :' + event.updateType + " event.data: " + event.data + " condition: " + (event.data == this),Debugger.CRITICAL,'update','org.lamsfoundation.lams.CanvasView'); + _visible = true; + break; + default : + Debugger.log('unknown update type :' + event.updateType,Debugger.CRITICAL,'update','org.lamsfoundation.lams.CanvasComplexView'); + } + + } + + /** + * layout visual elements on the canvas on initialisation + */ + private function draw(){ + //get the content path for the sp + content = canvas_scp.content; + content._alpha = 0; + bkg_pnl = content.createClassObject(Panel, "bkg_pnl", content.getNextHighestDepth(), {_alpha: 0}); + + transparentCover = content.createClassObject(Panel, "_transparentCover_mc", content.getNextHighestDepth(), {_visible: true, enabled: false, _alpha: 85}); + transparentCover.onPress = null; + + activityLayer = content.createEmptyMovieClip("_activityLayer_mc", content.getNextHighestDepth()); + + bkg_pnl.useHandCursor = false; + + setStyles(); + setSize(model); + + //Dispatch load event + dispatchEvent({type:'load',target:this}); + } + + /** + * Draws new or replaces existing activity to canvas stage. + * @usage + * @param a - Activity to be drawn + * @param cm - Refernce to the model + * @return Boolean - successfullit + */ + private function drawActivity(a:Activity,cm:CanvasModel):Boolean{ + if(!cm.isActiveView(this)) return false; + + var ccv = CanvasComplexView(this); + var cvc = getController(); + + var setupBranchView:Boolean = (cm.lastBranchActionType == CanvasModel.OPEN_FROM_FILE) ? false /* true */ : false; + + Debugger.log('setupBranchView:' + setupBranchView, Debugger.CRITICAL, 'drawActivity','CanvasComplexView'); + Debugger.log('I am in drawActivity and Activity typeID :'+a.activityTypeID+' added to the cm.activitiesDisplayed hashtable :'+newActivity_mc,4,'drawActivity','CanvasComplexView'); + + //take action depending on act type + if(a.activityTypeID==Activity.TOOL_ACTIVITY_TYPE || a.isGroupActivity()){ + var newActivity_mc = activityLayer.createChildAtDepth("CanvasActivity",DepthManager.kTop,{_activity:a,_canvasController:cvc,_canvasComplexView:ccv}); + activitiesDisplayed.put(a.activityUIID,newActivity_mc); + Debugger.log('Tool or gate activity a.title:'+a.title+','+a.activityUIID+' added to the cm.activitiesDisplayed hashtable:'+newActivity_mc,4,'drawActivity','CanvasView'); + } + else if (a.isGateActivity()){ + var newActivity_mc = activityLayer.createChildAtDepth("CanvasGateActivity",DepthManager.kTop,{_activity:a,_canvasController:cvc,_canvasComplexView:ccv}); + cm.activitiesDisplayed.put(a.activityUIID,newActivity_mc); + Debugger.log('Gate activity a.title:'+a.title+','+a.activityUIID+' added to the cm.activitiesDisplayed hashtable:'+newActivity_mc,4,'drawActivity','CanvasView'); + } + else if(a.activityTypeID==Activity.PARALLEL_ACTIVITY_TYPE){ + //get the children + var children:Array = cm.getCanvas().ddm.getComplexActivityChildren(a.activityUIID); + var newActivity_mc = activityLayer.createChildAtDepth("CanvasParallelActivity",DepthManager.kTop,{_activity:a,_children:children,_canvasController:cvc,_canvasComplexView:ccv, _locked:a.isReadOnly()}); + activitiesDisplayed.put(a.activityUIID,newActivity_mc); + Debugger.log('Parallel activity a.title:'+a.title+','+a.activityUIID+' added to the cm.activitiesDisplayed hashtable :'+newActivity_mc,4,'drawActivity','CanvasView'); + } + else if(a.activityTypeID==Activity.OPTIONAL_ACTIVITY_TYPE || a.activityTypeID==Activity.OPTIONS_WITH_SEQUENCES_TYPE){ + var children:Array = cm.getCanvas().ddm.getComplexActivityChildren(a.activityUIID); + var newActivity_mc = activityComplexLayer.createChildAtDepth("CanvasOptionalActivity",DepthManager.kTop,{_activity:a,_children:children,_canvasController:cvc,_canvasComplexView:ccv,_locked:a.isReadOnly()}); + + activitiesDisplayed.put(a.activityUIID,newActivity_mc); + + Debugger.log('Optional activity Type a.title:'+a.title+','+a.activityUIID+' added to the cm.activitiesDisplayed hashtable :'+newActivity_mc,4,'drawActivity','CanvasView'); + } + else if(a.isBranchingActivity()){ + var newActivity_mc = activityLayer.createChildAtDepth("CanvasActivity",DepthManager.kTop,{_activity:a,_canvasController:cvc,_canvasComplexView:ccv, setupBranchView: setupBranchView}); + activitiesDisplayed.put(a.activityUIID, newActivity_mc); + Debugger.log('Branching activity Type a.title:'+a.title+','+a.activityUIID+' added to the cm.activitiesDisplayed hashtable :'+newActivity_mc,4,'drawActivity','CanvasView'); + + }else{ + Debugger.log('The activity:'+a.title+','+a.activityUIID+' is of unknown type, it cannot be drawn',Debugger.CRITICAL,'drawActivity','CanvasView'); + } + + return true; + } + + /** + * Removes existing activity from canvas stage. DOES not affect DDM. called by an update, so DDM change is already made + * @usage + * @param a - Activity to be Removed + * @param cm - Refernce to the model + * @return Boolean - successfull + */ + private function removeActivity(a:Activity,cm:CanvasModel):Boolean{ + if(!cm.isActiveView(this)) return false; + + var r = activitiesDisplayed.remove(a.activityUIID); + r.removeMovieClip(); + var s:Boolean = (r==null) ? false : true; + return s; + } + + /** + * Sets the size of the canvas on stage, called from update + */ + private function setSize(cm):Void{ + var s:Object = cm.getSize(); + + var newWidth:Number = Math.max(s.w, lastScreenWidth); + var newHeight:Number = Math.max(s.h, lastScreenHeight); + + canvas_scp.setSize(s.w,s.h); + bkg_pnl.setSize(newWidth, newHeight); + transparentCover.setSize(newWidth, newHeight); + + //position bin in canvas. TODO + + canvas_scp.redraw(true); + + lastScreenWidth = newWidth; + lastScreenHeight = newHeight; + } + + /** + * Get the CSSStyleDeclaration objects for each component and apply them + * directly to the instance + * @usage + * @return + */ + private function setStyles() { + var styleObj = _tm.getStyleObject('CanvasPanel'); + bkg_pnl.setStyle('styleName', styleObj); + transparentCover.setStyle('styleName', styleObj); + } + + /** + * Sets the position of the canvas on stage, called from update + * @param cm Canvas model object + */ + private function setPosition(cm:CanvasModel):Void{ + var p:Object = cm.getPosition(); + this._x = p.x; + this._y = p.y; + } + + public function get ddm():DesignDataModel { + return _cm.getCanvas().ddm; + } + + public function get model():Object { + if(_cm != null) return _cm; + if(_mm != null) return _mm; + return null; + } + + /** + * Overrides method in abstract view to ensure correct type of controller is returned + * @usage + * @return CanvasController + */ + public function getController() { + var c:Controller = super.getController(); + + if(model instanceof CanvasModel) { + Debugger.log("canvas controller: " + c, Debugger.CRITICAL,'getController','CanvasBranchView'); + return CanvasController(c); + } else { + Debugger.log("monitor controller: " + c, Debugger.CRITICAL,'getController','CanvasBranchView'); + return MonitorController(c); + } + } + + /** + * Returns the default controller for this view . + * Overrides AbstractView.defaultController() + */ + public function defaultController (model):Object { + return (model instanceof CanvasModel) ? new CanvasController(model) : new MonitorModel(model); + } + + public function getScrollPaneVPosition():Number { + return canvas_scp.vPosition; + } + + public function getScrollPaneHPosition():Number { + return canvas_scp.hPosition; + } +} \ No newline at end of file Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== diff -u -r3a801a18771934435974f6bf6a1eeb69306cc1ec -r43bef28b390ac8bec99626dc15c94d577875f046 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 3a801a18771934435974f6bf6a1eeb69306cc1ec) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 43bef28b390ac8bec99626dc15c94d577875f046) @@ -452,11 +452,21 @@ if (!_pi.isPIExpanded()){ _canvasModel.setPIHeight(_pi.piFullHeight()); } + + if(ca.activity.parentUIID != null) { + // open complex inside complex view + Debugger.log("open complex viewer: " + ca.activity.activityUIID, Debugger.CRITICAL, "activityDoubleClick", "CanvasController") + _canvasModel.getCanvas().openComplexView(ca); + } + } else if (ca.activity.parentUIID != null && parentAct.activityTypeID == Activity.OPTIONAL_ACTIVITY_TYPE && (ca.activity.activityTypeID == Activity.PARALLEL_ACTIVITY_TYPE || ca.activity.activityTypeID == Activity.OPTIONAL_ACTIVITY_TYPE || ca.activity.activityTypeID == Activity.SEQUENCE_ACTIVITY_TYPE)){ if (!_pi.isPIExpanded()){ _canvasModel.setPIHeight(_pi.piFullHeight()); - } + + Debugger.log("open complex viewer: " + ca.activity.activityUIID, Debugger.CRITICAL, "activityDoubleClick", "CanvasController") + _canvasModel.getCanvas().openComplexView(ca); + } else if(ca.activity.isBranchingActivity()) { Debugger.log('activityDoubleClick CanvasBranchActivity:'+ca.activity.activityUIID,Debugger.CRITICAL,'activityDoubleClick','CanvasController'); @@ -473,6 +483,8 @@ _canvasModel.getCanvas().ddm.validDesign = false; _canvasModel.getCanvas().checkValidDesign(); } + + } } } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasHelper.as =================================================================== diff -u -re1f36676f5f48096f943ba518c8699e3ec4b8e12 -r43bef28b390ac8bec99626dc15c94d577875f046 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasHelper.as (.../CanvasHelper.as) (revision e1f36676f5f48096f943ba518c8699e3ec4b8e12) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasHelper.as (.../CanvasHelper.as) (revision 43bef28b390ac8bec99626dc15c94d577875f046) @@ -52,9 +52,10 @@ //Views private var canvasView:CanvasView; - private var canvasBranchView:CanvasBranchView; - private var _canvasView_mc:MovieClip; - private var _canvasBranchView_mc:MovieClip; + private var _canvasView_mc:MovieClip; + + private var canvasComplexView:CanvasComplexView; + private var _canvasComplexView_mc:MovieClip; // CookieMonster (SharedObjects) private var _cm:CookieMonster; @@ -73,9 +74,11 @@ private var toolActHeight:Number = 50; private var complexActWidth:Number = 143; private var _isBusy:Boolean; + private static var AUTOSAVE_CONFIG:String = "autosave"; private static var AUTOSAVE_TAG:String = "cv.ddm.autosave.user."; - private var _bin:MovieClip; //bin + + private var _bin:MovieClip; //bin private var _target_mc:MovieClip; @@ -99,7 +102,11 @@ if(evt.target instanceof CanvasBranchView) { evt.target.open(); - canvasModel.setDirty(); + canvasModel.setDirty(); + } else if(evt.target instanceof CanvasComplexView) { + // open complex view + evt.target._visible = true; + //evt.target.showComplexActivity(); } else { canvasModel.getCanvas().addBin(evt.target); @@ -123,7 +130,6 @@ } } - /** * Called by Comms after a design has been loaded, usually set as the call back of something like openDesignByID. * Will accept a learningDesign DTO and then render it all out. @@ -525,9 +531,13 @@ 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.branchView, Debugger.CRITICAL, "closeBranchView", "CanvasHelper"); canvasModel.activeView = (parentBranching.activity.isBranchingActivity()) ? parentBranching.branchView : canvasView; canvasModel.currentBranchingActivity = (parentBranching.activity.isBranchingActivity()) ? parentBranching : null; + + Debugger.log("activeView: " + canvasModel.activeView, Debugger.CRITICAL, "closeBranchView", "CanvasHelper"); + Debugger.log("currentBranchingActivity: " + canvasModel.currentBranchingActivity, Debugger.CRITICAL, "closeBranchView", "CanvasHelper"); } @@ -552,7 +562,7 @@ var target:MovieClip = (canvasModel.activeView instanceof CanvasBranchView) ? canvasModel.activeView.branchContent : _canvasView_mc.branchContent; - var _branchView_mc:MovieClip = target.createChildAtDepth("canvasBranchView", DepthManager.kTop, {_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}); var branchView:CanvasBranchView = CanvasBranchView(_branchView_mc); branchView.init(canvasModel, undefined); @@ -564,7 +574,25 @@ ba.branchView = branchView; - } + } + + public function openComplexView(ca:Object):Void { + + var target:MovieClip = (canvasModel.activeView instanceof CanvasBranchView) ? canvasModel.activeView.complexViewer : _canvasView_mc.complexViewer; + + _canvasComplexView_mc = target.createChildAtDepth("canvasComplexView", DepthManager.kTop, {_x: 0, _y: 0, _complexActivity:ca, _visible:false}); + canvasComplexView = CanvasComplexView(_canvasComplexView_mc); + + canvasComplexView.init(canvasModel, undefined); + canvasComplexView.addEventListener('load', Proxy.create(this, viewLoaded)); + + canvasModel.addObserver(canvasComplexView); + } + + public function closeComplexView():Void { + canvasModel.removeObserver(canvasComplexView); + _canvasComplexView_mc.removeMovieClip(); + } /** * recieves event fired after update to the DDM Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasOptionalActivity.as =================================================================== diff -u -r66768ec094a92cab9ef4bae8d55f6ea7aa7d8c41 -r43bef28b390ac8bec99626dc15c94d577875f046 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasOptionalActivity.as (.../CanvasOptionalActivity.as) (revision 66768ec094a92cab9ef4bae8d55f6ea7aa7d8c41) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasOptionalActivity.as (.../CanvasOptionalActivity.as) (revision 43bef28b390ac8bec99626dc15c94d577875f046) @@ -61,7 +61,8 @@ //this is set by the init object private var _canvasController:CanvasController; private var _canvasView:CanvasView; - private var _canvasBranchView:CanvasBranchView; + private var _canvasBranchView:CanvasBranchView; + private var _canvasComplexView:CanvasComplexView; private var _monitorController:MonitorController; private var _monitorTabView:MonitorTabView; private var _ca = ComplexActivity; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasParallelActivity.as =================================================================== diff -u -r66768ec094a92cab9ef4bae8d55f6ea7aa7d8c41 -r43bef28b390ac8bec99626dc15c94d577875f046 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasParallelActivity.as (.../CanvasParallelActivity.as) (revision 66768ec094a92cab9ef4bae8d55f6ea7aa7d8c41) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasParallelActivity.as (.../CanvasParallelActivity.as) (revision 43bef28b390ac8bec99626dc15c94d577875f046) @@ -50,6 +50,7 @@ //this is set by the init object private var _canvasController:CanvasController; private var _canvasView:CanvasView; + private var _canvasComplexView:CanvasComplexView; private var _monitorController:MonitorController; private var _monitorTabView:MonitorTabView; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasSequenceActivity.as =================================================================== diff -u -r66768ec094a92cab9ef4bae8d55f6ea7aa7d8c41 -r43bef28b390ac8bec99626dc15c94d577875f046 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasSequenceActivity.as (.../CanvasSequenceActivity.as) (revision 66768ec094a92cab9ef4bae8d55f6ea7aa7d8c41) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasSequenceActivity.as (.../CanvasSequenceActivity.as) (revision 43bef28b390ac8bec99626dc15c94d577875f046) @@ -56,6 +56,7 @@ private var _canvasView:CanvasView; private var _canvasBranchView:CanvasBranchView; + private var _canvasComplexView:CanvasComplexView; private var _monitorController:MonitorController; private var _monitorView; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasView.as =================================================================== diff -u -re1f36676f5f48096f943ba518c8699e3ec4b8e12 -r43bef28b390ac8bec99626dc15c94d577875f046 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasView.as (.../CanvasView.as) (revision e1f36676f5f48096f943ba518c8699e3ec4b8e12) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasView.as (.../CanvasView.as) (revision 43bef28b390ac8bec99626dc15c94d577875f046) @@ -167,7 +167,8 @@ transparentCover = content.createClassObject(Panel, "_transparentCover_mc", content.getNextHighestDepth(), {_visible: false, enabled: false, _alpha: 50}); transparentCover.onPress = null; - branchContent = content.createEmptyMovieClip("_branch_content_mc", content.getNextHighestDepth()); + complexViewer = content.createEmptyMovieClip("_complex_viewer_mc", content.getNextHighestDepth()); + branchContent = content.createEmptyMovieClip("_branch_content_mc", DepthManager.kTop); titleBar = _canvasView.attachMovie("DesignTitleBar", "titleBar", _canvasView.getNextHighestDepth()) Index: lams_flash/src/common/flash/org/lamsfoundation/lams/common/CommonCanvasView.as =================================================================== diff -u -re1f36676f5f48096f943ba518c8699e3ec4b8e12 -r43bef28b390ac8bec99626dc15c94d577875f046 --- lams_flash/src/common/flash/org/lamsfoundation/lams/common/CommonCanvasView.as (.../CommonCanvasView.as) (revision e1f36676f5f48096f943ba518c8699e3ec4b8e12) +++ lams_flash/src/common/flash/org/lamsfoundation/lams/common/CommonCanvasView.as (.../CommonCanvasView.as) (revision 43bef28b390ac8bec99626dc15c94d577875f046) @@ -54,6 +54,7 @@ private var _content_mc:MovieClip; private var _branch_content_mc:MovieClip; + private var _complex_viewer_mc:MovieClip; private var _gridLayer_mc:MovieClip; private var _transitionLayer_mc:MovieClip; @@ -205,6 +206,14 @@ public function set branchContent(a:MovieClip):Void { _branch_content_mc = a; } + + public function get complexViewer():MovieClip { + return _complex_viewer_mc; + } + + public function set complexViewer(a:MovieClip):Void { + _complex_viewer_mc = a; + } public function get activityLayer():MovieClip { return _activityLayer_mc;