Index: lams_flash/src/common/flash/org/lamsfoundation/lams/common/LearnerActivity.as =================================================================== diff -u -r17587e18dd4f1488eac9e1ff5ef60636da33bad0 -rbb2bee381467926d3e63726059a596df20659e6f --- lams_flash/src/common/flash/org/lamsfoundation/lams/common/LearnerActivity.as (.../LearnerActivity.as) (revision 17587e18dd4f1488eac9e1ff5ef60636da33bad0) +++ lams_flash/src/common/flash/org/lamsfoundation/lams/common/LearnerActivity.as (.../LearnerActivity.as) (revision bb2bee381467926d3e63726059a596df20659e6f) @@ -30,6 +30,8 @@ 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.SequenceActivity; +import org.lamsfoundation.lams.authoring.ComplexActivity; import org.lamsfoundation.lams.common.style.*; import com.polymercode.Draw; @@ -325,8 +327,17 @@ if(!_doubleClicking){ Debugger.log('Releasing:'+this,Debugger.GEN,'onRelease','LearnerActivity'); Debugger.log('Is sequence:'+this.activity.isSequenceActivity(),Debugger.GEN,'onRelease','LearnerActivity'); - var activeComplex = LearnerComplexActivity(this._parent._parent).getActiveComplex(); - var activeSequence = LearnerComplexActivity(this._parent._parent).getActiveSequence(); + + Debugger.log('cmap:'+LearnerComplexActivity(_parent._parent).sequenceMap,Debugger.CRITICAL,'onRelease','LearnerActivity'); + Debugger.log('cmap length:'+LearnerComplexActivity(_parent._parent).sequenceMap.values().length,Debugger.CRITICAL,'onRelease','LearnerActivity'); + + Debugger.log('activity uiid:'+this.activity.activityUIID,Debugger.CRITICAL,'onRelease','LearnerActivity'); + Debugger.log('c value :'+ LearnerComplexActivity(_parent._parent).sequenceMap.containsValue(SequenceActivity(this.activity)),Debugger.CRITICAL,'onRelease','LearnerActivity'); + Debugger.log('c title :'+ LearnerComplexActivity(_parent._parent).sequenceMap.values()[0].title,Debugger.CRITICAL,'onRelease','LearnerActivity'); + + + var activeComplex = LearnerComplexActivity(_parent._parent).complexMap.get(this.activity.activityUIID); + var activeSequence = LearnerComplexActivity(_parent._parent).sequenceMap.get(this.activity.activityUIID); if(this.activity.isSequenceActivity()) { // insert sequence design into learner complex activity @@ -336,26 +347,26 @@ if(LearnerComplexActivity(this._parent._parent).activity.activityUIID == this.activity.parentUIID) { - LearnerComplexActivity(this._parent._parent).setActiveComplex(null); + LearnerComplexActivity(this._parent._parent).setActiveComplex(null); //**** - if(activeSequence == this.activity) { + if(activeSequence) { // close current active sequence - LearnerComplexActivity(this._parent._parent).removeAllChildrenAndInputSequence(null); + LearnerComplexActivity(this._parent._parent).removeAllChildrenAndInputSequence(null, true); } else { // open sequence - LearnerComplexActivity(this._parent._parent).removeAllChildrenAndInputSequence(this.activity); + LearnerComplexActivity(this._parent._parent).removeAllChildrenAndInputSequence(this.activity, true); } } } else if(this.activity.isOptionsWithSequencesActivity() || this.activity.isOptionalActivity() || this.activity.isParallelActivity() || this.activity.isBranchingActivity()) { Debugger.log('activeComplex:'+activeComplex, Debugger.CRITICAL,'onRelease','LearnerActivity'); if(model.findParent(this.activity, LearnerComplexActivity(this._parent._parent).activity) || (activeSequence.activityUIID == this.activity.parentUIID)) { - if(activeComplex == this.activity) { + if(activeComplex != null) { // close current active complex - LearnerComplexActivity(this._parent._parent).removeAllChildrenAndInputComplex(null); + LearnerComplexActivity(this._parent._parent).removeAllChildrenAndInputComplex(null, null, true); } else { // open complex - LearnerComplexActivity(this._parent._parent).removeAllChildrenAndInputComplex(this.activity, this.level); + LearnerComplexActivity(this._parent._parent).removeAllChildrenAndInputComplex(this.activity, this.level, true); } } } Index: lams_flash/src/common/flash/org/lamsfoundation/lams/common/LearnerComplexActivity.as =================================================================== diff -u -r17587e18dd4f1488eac9e1ff5ef60636da33bad0 -rbb2bee381467926d3e63726059a596df20659e6f --- lams_flash/src/common/flash/org/lamsfoundation/lams/common/LearnerComplexActivity.as (.../LearnerComplexActivity.as) (revision 17587e18dd4f1488eac9e1ff5ef60636da33bad0) +++ lams_flash/src/common/flash/org/lamsfoundation/lams/common/LearnerComplexActivity.as (.../LearnerComplexActivity.as) (revision bb2bee381467926d3e63726059a596df20659e6f) @@ -102,20 +102,26 @@ private var _level:Number; private var _complexLevel:Number; - private var activeSequence:SequenceActivity; - private var activeComplex:ComplexActivity; + private var _activeSequence:SequenceActivity; + private var _activeComplex:ComplexActivity; + private var activeSequenceMap:Hashtable; + private var activeComplexMap:Hashtable; + private var delegates:Array; - private var manualSelect:Boolean; + private var _manualSelect:Boolean; private var lockedRefresh:Boolean; function LearnerComplexActivity () { complexActivity_mc = this; - activeSequence = null; - activeComplex = null; + _activeSequence = null; + _activeComplex = null; + + activeSequenceMap = new Hashtable("activeSequenceMap"); + activeComplexMap = new Hashtable("activeComplexMap"); - manualSelect = false; + _manualSelect = false; app = ApplicationParent.getInstance(); @@ -209,6 +215,14 @@ var progStatus:String = Progress.compareProgressData(learner, _children[i].activityID); var parentAct:Activity = (model instanceof LessonModel) ? model.learningDesignModel.getActivityByUIID(Activity(_children[i]).parentUIID) : model.ddm.getActivityByUIID(Activity(_children[i]).parentUIID); + if(complexMap.containsKey(_children[i].activityUIID) && _activeComplex == null) { + _activeComplex = complexMap.get(_children[i].activityUIID); + _complexLevel = _children[i].level; + } + + if(sequenceMap.containsKey(_children[i].activityUIID) && _activeSequence == null) + _activeSequence = sequenceMap.get(_children[i].activityUIID); + if(children_mc.length > 0) childCoordY = (children_mc[children_mc.length-1] instanceof LearnerComplexActivity) ? children_mc[children_mc.length-1]._y + children_mc[children_mc.length-1].getChildrenHeight() : children_mc[children_mc.length-1]._y + 21; // (count*21); @@ -218,7 +232,6 @@ learnerAct = LearnerActivity(childHolder_mc.createChildAtDepth("LearnerActivity_forComplex", childHolder_mc.getNextHighestDepth(), {_activity:_children[i], _controller:_controller, _view:_view, learner:learner, actStatus:progStatus, _complex:true, _level: _newLevel, xPos:this._x, yPos:childCoordY})); Debugger.log('newLevel:' + _newLevel,Debugger.CRITICAL,'drawChildren','LearnerComplexActivity'); - Debugger.log('attaching child movieL ' + learnerAct,Debugger.CRITICAL,'drawChildren','LearnerComplexActivity'); //set the positioning co-ords @@ -236,38 +249,36 @@ children_mc.push(learnerAct); - if(learnerAct.activity == activeSequence && activeSequence.firstActivityUIID != null) { - - var actOrder:Array = model.getDesignOrder(activeSequence.firstActivityUIID, true); + Debugger.log("activeSequence : " + activeSequence, Debugger.CRITICAL, "drawChildren", "LearnerComplexActivity"); + Debugger.log("activeComplex : " + activeComplex, Debugger.CRITICAL, "drawChildren", "LearnerComplexActivity"); + + Debugger.log("activeComplex test: " + (learnerAct.activity.activityUIID == activeComplex.activityUIID), Debugger.CRITICAL, "drawChildren", "LearnerComplexActivity"); + Debugger.log("activeSequence test: " + (learnerAct.activity.activityUIID == activeSequence.activityUIID), Debugger.CRITICAL, "drawChildren", "LearnerComplexActivity"); + Debugger.log("activeSequence firstUIID: " + SequenceActivity(activeSequence).firstActivityUIID, Debugger.CRITICAL, "drawChildren", "LearnerComplexActivity"); + + + if(learnerAct.activity.activityUIID == activeSequence.activityUIID && SequenceActivity(activeSequence).firstActivityUIID != null) { + Debugger.log("test: activeseq", Debugger.CRITICAL, "drawChildren", "LearnerComplexActivity"); + + var actOrder:Array = model.getDesignOrder(SequenceActivity(activeSequence).firstActivityUIID, true); createChildren(actOrder, null); return i+1; - /*} - else if(learnerAct.activity.isBranchingActivity()) { - Debugger.log('test: ' + (learnerAct.isAttempted || learnerAct.isCompleted), Debugger.CRITICAL, 'drawChildren', 'LearnerComplexActivity'); - Debugger.log('mode: ' + _root.mode, Debugger.CRITICAL, 'drawChildren', 'LearnerComplexActivity'); - - if(!isLearnerModule() || _root.mode == 'preview') { - var _cChildren:Array = (model instanceof LessonModel) ? model.learningDesignModel.getComplexActivityChildren(learnerAct.activity.activityUIID) : model.ddm.getComplexActivityChildren(learnerAct.activity.activityUIID); - - learnerAct = LearnerComplexActivity(childHolder_mc.createChildAtDepth("LearnerComplexActivity_Nested", DepthManager.kTop, {_activity:_children[i], _children:_cChildren, _controller:_controller, _view:_view, learner:learner, actStatus:progStatus, _nested:true, _level: _level+1, _x:0, _y:childCoordY+21})); - children_mc.push(learnerAct); - - } - - return i+1; - */ - } else if(learnerAct.activity == activeComplex) { + } else if(learnerAct.activity.activityUIID == activeComplex.activityUIID) { + Debugger.log("test: activecompl", Debugger.CRITICAL, "drawChildren", "LearnerComplexActivity"); var _cChildren:Array = (model instanceof LessonModel) ? model.learningDesignModel.getComplexActivityChildren(activeComplex.activityUIID) : model.ddm.getComplexActivityChildren(activeComplex.activityUIID); + Debugger.log("learner level: " + _level, Debugger.CRITICAL, "drawChildren", "LearnerComplexActivity"); Debugger.log("learner complex level: " + _complexLevel, Debugger.CRITICAL, "drawChildren", "LearnerComplexActivity"); - learnerAct = LearnerComplexActivity(childHolder_mc.createChildAtDepth("LearnerComplexActivity_Nested", DepthManager.kTop, {_activity:_children[i], _children:_cChildren, _controller:_controller, _view:_view, learner:learner, actStatus:progStatus, _nested:true, _level: _level+1, _complexLevel:_complexLevel, _x:0, _y:childCoordY+21})); children_mc.push(learnerAct); return i+1; + } else { + Debugger.log("test: unknown", Debugger.CRITICAL, "drawChildren", "LearnerComplexActivity"); + } } @@ -319,20 +330,22 @@ _activity = a; } - public function refresh() { + public function refresh(_clear:Boolean) { if(lockedRefresh) return; showStatus(false); learner = (model instanceof LessonModel) ? model.progressData : learner; actStatus = null; - activeSequence = null; - activeComplex = null; + if(_clear) { + activeSequence = null; + activeComplex = null; + } delegates = new Array(); - if(!manualSelect) { + if(!_manualSelect) { checkIfBranchActive(); checkIfSequenceActive(); } @@ -351,17 +364,19 @@ /** TODO: Use for Sequence in Optional */ private function checkIfSequenceActive():Void { + Debugger.log("running...", Debugger.CRITICAL, "checkIfSequenceActive", "LearnerComplexActivity"); + lockedRefresh = false; - if(manualSelect) { - manualSelect = false; + if(_manualSelect) { + _manualSelect = false; return; } var closeBox:Boolean = true; - var tempActiveSequence:SequenceActivity = activeSequence; - var tempActiveComplex:ComplexActivity = activeComplex; + var tempActiveSequence:SequenceActivity = _activeSequence; + var tempActiveComplex:ComplexActivity = _activeComplex; for(var i=0; i