Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as =================================================================== diff -u -rf2894566dd80deaf0ac11226459a61a0b680e6fe -r11be58369c919ae40d1329129fdb6c2dabe27c45 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision f2894566dd80deaf0ac11226459a61a0b680e6fe) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision 11be58369c919ae40d1329129fdb6c2dabe27c45) @@ -29,7 +29,6 @@ import org.lamsfoundation.lams.authoring.*; import org.lamsfoundation.lams.common.dict.*; import org.lamsfoundation.lams.common.mvc.*; -import org.lamsfoundation.lams.common.ApplicationParent; import org.lamsfoundation.lams.common.CommonCanvasView; import org.lamsfoundation.lams.monitoring.mv.MonitorModel; import org.lamsfoundation.lams.monitoring.mv.MonitorController; @@ -116,13 +115,15 @@ _cm = (m instanceof CanvasModel) ? CanvasModel(m) : null; _mm = (m instanceof MonitorModel) ? MonitorModel(m) : null; - Debugger.log('_cm:'+_cm, Debugger.CRITICAL,'viewUpdate','CanvasBranchView'); - Debugger.log('_mm:'+_mm, Debugger.CRITICAL,'viewUpdate','CanvasBranchView'); - //register to recive updates form the model - if(_cm != null) _cm.addEventListener('viewUpdate',this); - if(_mm != null) _mm.addEventListener('viewUpdate',this); + Debugger.log('_cm:'+_cm, Debugger.CRITICAL,'init','CanvasBranchView'); + Debugger.log('_mm:'+_mm, Debugger.CRITICAL,'init','CanvasBranchView'); + + //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)); } @@ -134,25 +135,38 @@ } /** + * 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('Received an Event dispatcher UPDATE!, updateType:'+event.updateType+', target'+event.target,4,'viewUpdate','CanvasBranchView'); var _model = event.target; + Debugger.log("_model instance: " + (_model instanceof MonitorModel), Debugger.CRITICAL, "viewUpdate", "CanvasBranchView"); var isCanvasModel:Boolean; var isMonitorModel:Boolean; + isMonitorModel = model instanceof MonitorModel; isCanvasModel = model instanceof CanvasModel; - Debugger.log('isCanvasModel:'+isCanvasModel, Debugger.CRITICAL,'viewUpdate','CanvasBranchView'); Debugger.log('isMonitorModel:'+isMonitorModel,Debugger.CRITICAL,'viewUpdate','CanvasBranchView'); - - + switch (event.updateType){ case 'POSITION': setPosition(_model); @@ -231,15 +245,13 @@ close_mc.onRelease = Proxy.create(this, localOnRelease); close_mc.onReleaseOutside = Proxy.create(this, localOnReleaseOutside); - + setupConnectorHubs(); loadSequenceActivities(); setStyles(); setSize(model); - //_open is consistently false in monitor - Debugger.log("_open: "+_open, Debugger.CRITICAL, "draw", "CanvasBranchView"); if(_open) { this._visible = true; @@ -339,8 +351,11 @@ private function drawActivity(a:Activity, cm):Boolean{ Debugger.log("pnt1", Debugger.CRITICAL, "drawActivity", "CanvasBranchView"); + if(!cm.isActiveView(this)) return false; + Debugger.log("pnt2", Debugger.CRITICAL, "drawActivity", "CanvasBranchView"); + var cbv = CanvasBranchView(this); var cbc = getController(); @@ -660,16 +675,21 @@ */ public function getController():Object { var c:Controller = super.getController(); - - if (ApplicationParent.getInstance().module == "monitoring") { - Debugger.log("We are in the monitoring module", Debugger.GEN,'getController','CanvasBranchView'); + /* Debugger.log("ApplicationParent.module: "+ApplicationParent.module, Debugger.CRITICAL,'getController','CanvasBranchView'); + if (ApplicationParent.module == "monitoring") { + Debugger.log("We are in the montioring module", Debugger.CRITICAL,'getController','CanvasBranchView'); return MonitorController(c); } - else { - Debugger.log("We are in the authoring module", Debugger.GEN,'getController','CanvasBranchView'); + else if (ApplicationParent.module == "authoring") { + Debugger.log("We are in the montioring module", Debugger.CRITICAL,'getController','CanvasBranchView'); return CanvasController(c); } + else { + Debugger.log("Unkown module", Debugger.CRITICAL,'getController','CanvasBranchView'); + return null; + }*/ + return (c instanceof CanvasController) ? CanvasController(c) : MonitorController(c); } /** @@ -685,8 +705,8 @@ } public function get model():Object { - if(_cm) return _cm; - if(_mm) return _mm; + if(_cm != null) return _cm; + if(_mm != null) return _mm; return null; } } \ No newline at end of file Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as =================================================================== diff -u -rf2894566dd80deaf0ac11226459a61a0b680e6fe -r11be58369c919ae40d1329129fdb6c2dabe27c45 --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as (.../Monitor.as) (revision f2894566dd80deaf0ac11226459a61a0b680e6fe) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as (.../Monitor.as) (revision 11be58369c919ae40d1329129fdb6c2dabe27c45) @@ -147,20 +147,22 @@ public function broadcastInit(){ dispatchEvent({type:'init',target:this}); } + private function viewLoaded(evt:Object){ Debugger.log('viewLoaded called',Debugger.GEN,'viewLoaded','Monitor'); - + if(evt.type=='load') { monitorModel.activeView = evt.target; - + if(evt.target instanceof CanvasBranchView) { evt.target.open(); monitorModel.setDirty(); } else if((monitorLockView != null || !locked) && monitorView != null) { dispatchEvent({type:'load',target:this}); } + } else { //Raise error for unrecognized event } @@ -422,7 +424,6 @@ * @return */ public function clearCanvas(noWarn:Boolean):Boolean{ - //_global.breakpoint(); var s = false; var ref = this; Debugger.log('noWarn:'+noWarn,4,'clearCanvas','Monitor'); @@ -431,8 +432,9 @@ _ddm = new DesignDataModel(); //as its a new instance of the ddm,need to add the listener again //_ddm.addEventListener('ddmUpdate',Proxy.create(this,onDDMUpdated)); + Debugger.log('noWarn2:'+noWarn,4,'clearCanvas','Monitor');//_ddm.addEventListener('ddmBeforeUpdate',Proxy.create(this,onDDMBeforeUpdate)); - //checkValidDesign(); + monitorModel.setDirty(); return true; }else{ @@ -443,21 +445,22 @@ } public function openBranchView(ba, visible:Boolean){ - + var cx:Number = ba._x + ba.getVisibleWidth()/2; var cy:Number = ba._y + ba.getVisibleHeight()/2; var isVisible:Boolean = (visible == null) ? true : visible; var _branchView_mc:MovieClip = MovieClip(monitorView.getMonitorTabView()).createChildAtDepth("canvasBranchView", DepthManager.kTop, {_x: cx, _y: cy, _canvasBranchingActivity:ba, _open:isVisible}); var branchView:CanvasBranchView = CanvasBranchView(_branchView_mc); - branchView.init(monitorModel,undefined); - //Add listener to view so that we know when it's loaded - branchView.addEventListener('load', Proxy.create(this,viewLoaded)); - monitorModel.addObserver(branchView); + branchView.init(monitorModel, undefined); + //Add listener to view so that we know when it's loaded + branchView.addEventListener('load', Proxy.create(this, viewLoaded)); + ba.branchView = branchView; + } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as =================================================================== diff -u -rc5ce2369b6232db2c25a966f7873f695ebf6e485 -r11be58369c919ae40d1329129fdb6c2dabe27c45 --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision c5ce2369b6232db2c25a966f7873f695ebf6e485) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision 11be58369c919ae40d1329129fdb6c2dabe27c45) @@ -96,6 +96,7 @@ //each on contains a reference to the emelment in the ddm (activity or transition) private var _activitiesDisplayed:Hashtable; private var _transitionsDisplayed:Hashtable; + private var _branchesDisplayed:Hashtable; private var _learnersProgress:Hashtable; //this is the dataprovider for the org tree @@ -133,6 +134,7 @@ _activitiesDisplayed = new Hashtable("_activitiesDisplayed"); _transitionsDisplayed = new Hashtable("_transitionsDisplayed"); + _branchesDisplayed = new Hashtable("_branchesDisplayed"); _learnersProgress = new Hashtable("_learnersProgress") _orgResources = new Array(); @@ -403,9 +405,25 @@ var mm_transition:Transition = _transitionsDisplayed.get(transkeyToCheck).transition; broadcastViewUpdate("REMOVE_TRANSITION",mm_transition, getSelectedTab()); } + + //now check the transitions: + var mmBranch_keys:Array = _branchesDisplayed.keys(); + + //chose which array we are going to loop over + var brIndexArray:Array; + brIndexArray = mmBranch_keys; + + //loop through and do comparison + for(var i=0;i 0 || ddm_activity.parentUIID > 0) && !isDesignDrawn){ - broadcastViewUpdate("DRAW_ACTIVITY", ddm_activity, tabID, drawLearner); - } else { - broadcastViewUpdate("CLONE_ACTIVITY", ddm_activity, tabID, drawLearner); - } + for(var i=0;i 0 || ddm_activity.parentUIID > 0){ + var parentAct; + if((parentAct = _activeSeq.getLearningDesignModel().activities.get(ddm_activity.parentUIID)) != null) + if(parentAct.activityTypeID == Activity.SEQUENCE_ACTIVITY_TYPE) + broadcastViewUpdate("DRAW_ACTIVITY_SEQ", ddm_activity, tabID, drawLearner); + } else { + broadcastViewUpdate("DRAW_ACTIVITY", ddm_activity, tabID, drawLearner); + } } //now check the transitions: @@ -534,6 +561,21 @@ broadcastViewUpdate("DRAW_TRANSITION", ddmTransition, tabID); } + //now check the transitions: + var ddmBranch_keys:Array = _activeSeq.getLearningDesignModel().branches.keys(); + + //chose which array we are going to loop over + var brIndexArray:Array; + brIndexArray = ddmBranch_keys; + + //loop through and do comparison + for(var i=0;i