Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as =================================================================== diff -u -r63e4ddc1e3bb7b6ca1da4a02ee3d0d148552dee8 -rf8e0c0e67f67bdcdf8ae8367b638c3775f7652de --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision 63e4ddc1e3bb7b6ca1da4a02ee3d0d148552dee8) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision f8e0c0e67f67bdcdf8ae8367b638c3775f7652de) @@ -22,7 +22,8 @@ */ import org.lamsfoundation.lams.monitoring.*; -import org.lamsfoundation.lams.monitoring.mv.*; +import org.lamsfoundation.lams.monitoring.mv.*; +import org.lamsfoundation.lams.monitoring.mv.tabviews.LearnerTabView; import org.lamsfoundation.lams.authoring.Activity; import org.lamsfoundation.lams.authoring.Branch; import org.lamsfoundation.lams.authoring.BranchingActivity; @@ -564,24 +565,26 @@ * @return */ public function drawDesign(tabID:Number, learner:Object){ + + var eventArr:Array = new Array(); + ddmActivity_keys = _activeSeq.getLearningDesignModel().activities.keys(); var indexArray:Array = setDesignOrder(); if (learner != null || learner != undefined){ var drawLearner:Object = new Object(); drawLearner = learner; - - //indexArray = setDesignOrder(); - } + } //go through the design and get the activities and transitions var dataObj:Object; Debugger.log("ddm_activity keys: "+ddmActivity_keys.length, Debugger.GEN, "drawDesign", "MonitorModel"); - //var tmpNum:Number = (getSelectedTab() == 2 ) ? indexArray.length/5 : indexArray; - //loop through - for(var i=0;i<(indexArray.length); i++){ + //loop through + Debugger.log("indexArray.length: "+indexArray.length, Debugger.CRITICAL, "drawDesign", "MonitorModel"); + + 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); + eventArr.push(createViewUpdate("DRAW_ACTIVITY_SEQ", ddm_activity, tabID, drawLearner)); } else { - broadcastViewUpdate("DRAW_ACTIVITY", ddm_activity, tabID, drawLearner); + eventArr.push(createViewUpdate("DRAW_ACTIVITY", ddm_activity, tabID, drawLearner)); } } - - //now check the transitions: - ddmTransition_keys = _activeSeq.getLearningDesignModel().transitions.keys(); - - //chose which array we are going to loop over - var trIndexArray:Array; - trIndexArray = ddmTransition_keys; - - //loop through - for(var i=0;i<(trIndexArray.length);i++){ - var transitionKeyToCheck:Number = trIndexArray[i]; - var ddmTransition:Transition = _activeSeq.getLearningDesignModel().transitions.get(transitionKeyToCheck); - 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 1) {*/ - //monitorLearner_scp._y = monitorLearner_scp._y+20; - /*Debugger.log("if", Debugger.CRITICAL, "setPosition", "MonitorView"); - - } - else { - Debugger.log("else", Debugger.CRITICAL, "setPosition", "MonitorView"); - }*/ + this._x = p.x; this._y = p.y; } @@ -451,7 +442,7 @@ public function getMonitorSequenceScp():MovieClip{ return monitorSequence_scp; } - public function getMonitorLearnerScp():MovieClip{ + public function getMonitorLearnerScp():ScrollPane{ return monitorLearner_scp; } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LearnerIndexView.as =================================================================== diff -u -r63e4ddc1e3bb7b6ca1da4a02ee3d0d148552dee8 -rf8e0c0e67f67bdcdf8ae8367b638c3775f7652de --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LearnerIndexView.as (.../LearnerIndexView.as) (revision 63e4ddc1e3bb7b6ca1da4a02ee3d0d148552dee8) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LearnerIndexView.as (.../LearnerIndexView.as) (revision f8e0c0e67f67bdcdf8ae8367b638c3775f7652de) @@ -119,6 +119,7 @@ } break; case 'DRAW_DESIGN' : + Debugger.log("LearnerIndexView DRAW_DESIGN evt update received", Debugger.CRITICAL, "update", "LearnerTavView"); if (infoObj.tabID == _tabID && !mm.locked && mm.numIndexButtons>1){ if (mm.numIndexButtons > displayedButtons.length) { Debugger.log("Setting up buttons [mm.numIndexButtons > displayedButtons.length]", Debugger.CRITICAL, "update", "LearnerIndexView"); Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LearnerTabView.as =================================================================== diff -u -r63e4ddc1e3bb7b6ca1da4a02ee3d0d148552dee8 -rf8e0c0e67f67bdcdf8ae8367b638c3775f7652de --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LearnerTabView.as (.../LearnerTabView.as) (revision 63e4ddc1e3bb7b6ca1da4a02ee3d0d148552dee8) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LearnerTabView.as (.../LearnerTabView.as) (revision f8e0c0e67f67bdcdf8ae8367b638c3775f7652de) @@ -85,6 +85,14 @@ private var refresh_btn:Button; private var help_btn:Button; private var panelLowered:Boolean; + + private var drawCount:Number; + private var maxCount:Number; + private var evtArr:Array; + + private var currentLearnerIndex:Number; + private var maxLearnerIndex:Number; + private var learnersDrawnIndex:Number; //Defined so compiler can 'see' events added at runtime by EventDispatcher private var dispatchEvent:Function; @@ -117,22 +125,22 @@ //Set up parameters for the grid H_GAP = 10; - V_GAP = 10; + V_GAP = 10; MovieClipUtils.doLater(Proxy.create(this,draw)); mm.getMonitor().getMV().getMonitorLearnerScp()._visible = false; - } + } /** * Recieved update events from the CanvasModel. Dispatches to relevent handler depending on update.Type * @usage * @param event */ public function update (o:Observable,infoObj:Object):Void{ - - var mm:MonitorModel = MonitorModel(o); + Debugger.log("update has been called", Debugger.CRITICAL, "update", "LearnerTabView"); + var mm:MonitorModel = MonitorModel(o); - switch (infoObj.updateType){ + switch (infoObj.updateType){ case 'POSITION' : setPosition(mm); break; @@ -193,18 +201,47 @@ } break; case 'DRAW_DESIGN' : + Debugger.log("DRAW_DESIGN evt update received", Debugger.CRITICAL, "update", "LearnerTavView"); adjustLearnerPanel(mm); if (infoObj.tabID == _tabID && !mm.locked){ if (mm.isDesignDrawn) { clearCanvas(mm); } drawAllLearnersDesign(mm, infoObj.tabID); } + break; + case 'DRAW_ALL' : + if (infoObj.tabID == _tabID && !mm.locked){ + evtArr = infoObj.data; + drawAll(); + } break; default : - Debugger.log('unknown update type :' + infoObj.updateType,Debugger.CRITICAL,'update','org.lamsfoundation.lams.MonitorTabView'); + Debugger.log('unknown update type :' + infoObj.updateType,Debugger.CRITICAL,'update','org.lamsfoundation.lams.LearnerTabView'); } } + + private function drawAll(){ + drawCount = 0; + + maxCount = evtArr.length; + + Debugger.log("drawing all activities: " + maxCount, Debugger.CRITICAL, "drawAll", "LearnerTabView"); + + drawNext(); + } + + public function drawNext():Void { + if(drawCount < maxCount) { + Debugger.log("drawing: " + evtArr[drawCount].updateType, Debugger.CRITICAL, "drawNext", "LearnerTabView"); + update(mm, evtArr[drawCount]) + } else { + drawNextLearner(); + return; + } + + drawCount++; + } /** * layout visual elements on the MonitorTabView on initialisation @@ -304,25 +341,37 @@ } private function drawAllLearnersDesign(mm:MonitorModel, tabID:Number){ - - var idx:Number = 0; var learnersPerPage:Number = mm.learnersPerPage; + currentLearnerIndex = (mm.currentLearnerIndex-1)*learnersPerPage; + maxLearnerIndex = (learnersPerPage*mm.currentLearnerIndex)-1; + learnersDrawnIndex = 0; + //mm.allLearnersProgress.sortOn("learnerLastName", Array.DESCENDING); + + drawNextLearner(); - for (var i= (mm.currentLearnerIndex-1)*learnersPerPage; i<= (learnersPerPage*mm.currentLearnerIndex)-1; i++) { - if (mm.allLearnersProgress[i] != undefined) { - learnersDrawn = i+1; + } + + private function drawNextLearner(){ + Debugger.log("drawing next learner: " + currentLearnerIndex, Debugger.CRITICAL, "drawNextLearner", "LearnerTabView") + + if(currentLearnerIndex <= maxLearnerIndex) { + Debugger.log("learner progress: " + mm.allLearnersProgress[currentLearnerIndex], Debugger.CRITICAL, "drawNextLearner", "LearnerTabView") + + if (mm.allLearnersProgress[currentLearnerIndex] != undefined) { + learnersDrawn = currentLearnerIndex+1; + ACT_X = 0; - ACT_Y = (idx*80)+35; - - mm.drawDesign(tabID, mm.allLearnersProgress[i]); - - setSize(mm); - idx++; - } + ACT_Y = (learnersDrawnIndex*80)+35; + + learnersDrawnIndex++; + mm.drawDesign(_tabID, mm.allLearnersProgress[currentLearnerIndex]); + } + } else { + setSize(mm); + mm.isDesignDrawn = true; } - //mm.getMonitor().getMV().getMonitorLearnerScp().redraw(true); //unnecessary - mm.isDesignDrawn = true; + currentLearnerIndex++; } /** @@ -420,7 +469,7 @@ var ltv = LearnerTabView(this); var mc = getController(); - var newActivity_mc = null; + var newActivity_mc:MovieClip = null; Debugger.log('The activity:'+a.title+','+a.activityTypeID+' is now be drawn',Debugger.CRITICAL,'drawActivity','LearnerTabView'); @@ -454,7 +503,7 @@ var actItems:Number = mm.activitiesDisplayed.size(); if (actItems < mm.getActivityKeys().length) - mm.activitiesDisplayed.put(a.activityUIID,newActivity_mc); + mm.activitiesDisplayed.put(a.activityUIID,newActivity_mc); return true; } @@ -529,8 +578,15 @@ private function setSize(mm:MonitorModel):Void{ var s:Object = mm.getSize(); + var actkeys = mm.getSequence().getLearningDesignModel().activities.keys(); + Debugger.log("actkeys.length: "+actkeys.length, Debugger.CRITICAL, "setSize", "LearnerTabView"); + + var ddmBranch_keys:Array = mm.getSequence().getLearningDesignModel().branches.keys(); + Debugger.log("ddmBranch_keys.length: "+ddmBranch_keys.length, Debugger.CRITICAL, "setSize", "LearnerTabView"); + //var scpWidth:Number = mm.getMonitor().getMV().getMonitorLearnerScp()._width; - var scpWidth:Number = Stage.width; + var scpWidth:Number = (actkeys.length)*130; + var scpHeight:Number = mm.getMonitor().getMV().getMonitorLearnerScp()._height; var newWidth:Number; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/MonitorTabView.as =================================================================== diff -u -r7a9b710e06a36df574d235d7afc61665580249ec -rf8e0c0e67f67bdcdf8ae8367b638c3775f7652de --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/MonitorTabView.as (.../MonitorTabView.as) (revision 7a9b710e06a36df574d235d7afc61665580249ec) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/MonitorTabView.as (.../MonitorTabView.as) (revision f8e0c0e67f67bdcdf8ae8367b638c3775f7652de) @@ -217,6 +217,11 @@ } break; + case 'DRAW_ALL' : + if (infoObj.tabID == _tabID && !mm.locked){ + drawAll(infoObj.data, mm); + } + break; case 'SET_ACTIVE' : Debugger.log('setting active :' + infoObj.updateType + " event.data: " + infoObj.data + " condition: " + (infoObj.data == this),Debugger.CRITICAL,'update','org.lamsfoundation.lams.MonitorTabView'); transparentCover._visible = (infoObj.data == this) ? false : true; @@ -371,6 +376,12 @@ return true; } + private function drawAll(objArr:Array, mm:MonitorModel){ + for (var i=0; i