Index: lams_common/src/flash/org/lamsfoundation/lams/common/LearnerComplexActivity.as =================================================================== diff -u -rfa28f226df39e44ce8f3f2e5a0927dc3945bf0ff -rd88416a11f6ca7624b0df35ed41df2a992f5b395 --- lams_common/src/flash/org/lamsfoundation/lams/common/LearnerComplexActivity.as (.../LearnerComplexActivity.as) (revision fa28f226df39e44ce8f3f2e5a0927dc3945bf0ff) +++ lams_common/src/flash/org/lamsfoundation/lams/common/LearnerComplexActivity.as (.../LearnerComplexActivity.as) (revision d88416a11f6ca7624b0df35ed41df2a992f5b395) @@ -55,7 +55,8 @@ private var container_pnl : Panel; private var title_lbl : Label; - //locals + //locals + private var actStatus:String; private var childActivities_mc : MovieClip; private var complexActivity_mc : MovieClip; @@ -78,12 +79,14 @@ private var _visibleWidth : Number; private var _tm : ThemeManager; - private var _ddm : DesignDataModel; + private var _ddm : DesignDataModel; + private var app:ApplicationParent; function LearnerComplexActivity () { complexActivity_mc = this - _ddm = new DesignDataModel (); + _ddm = new DesignDataModel (); + app = ApplicationParent.getInstance(); _visible = false; _tm = ThemeManager.getInstance (); _visibleHeight = container_pnl._height; @@ -93,21 +96,33 @@ } public function init () : Void - { + { + clickTarget_mc.onPress = Proxy.create (this, localOnPress); clickTarget_mc.onRelease = Proxy.create (this, localOnRelease); clickTarget_mc.onReleaseOutside = Proxy.create (this, localOnReleaseOutside); _locked = false; showStatus(false); childActivities_mc = this; - var children_mc : Array = new Array (); + var children_mc : Array = new Array (); + + if(_activity.activityTypeID == Activity.PARALLEL_ACTIVITY_TYPE){ + if(_children[0].orderID < _children[1].orderID){ + _children = orderParallelActivities(_children[0],_children[1]); + }else{ + _children = orderParallelActivities(_children[1],_children[0]); + } + } for (var i = 0; i < _children.length; i ++) { var progStatus:String = Progress.compareProgressData(learner, _children [i].activityID); - children_mc [i] = childHolder_mc.attachMovie("LearnerActivity_forComplex", "LearnerActivityVertical_forOptional"+i, childHolder_mc.getNextHighestDepth(), {_activity:_children[i], _controller:_controller, _view:_view, learner:learner, actStatus:progStatus}); - + + //if(_activity.activityTypeID==Activity.TOOL_ACTIVITY_TYPE || _activity.isGateActivity() || a.isGroupActivity() ){ + children_mc [i] = childHolder_mc.attachMovie("LearnerActivity_forComplex", "LearnerActivityVertical_forOptional"+i, childHolder_mc.getNextHighestDepth(), {_activity:_children[i], _controller:_controller, _view:_view, learner:learner, actStatus:progStatus}); + //} else if(_activity.activityTypeID==Activity.PARALLEL_ACTIVITY_TYPE || _activity.activityTypeID==Activity.OPTIONAL_ACTIVITY_TYPE){ + //set the positioning co-ords children_mc [i]._y = (i*21); @@ -143,10 +158,13 @@ public function setActivity (a : Activity) { _activity = a; - } + } + private function draw (){ + if (actStatus == null || actStatus == undefined){ + actStatus = Progress.compareProgressData(learner, _activity.activityID); + } - var actStatus:String = Progress.compareProgressData(learner, _activity.activityID); switch (actStatus){ case 'completed_mc' : completed_mc._visible = true; @@ -199,7 +217,9 @@ Debugger.log ('DoubleClicking:' + this, Debugger.GEN, 'localOnPress', 'LearnerOptionalActivity'); _doubleClicking = true; //if we double click on the glass mask - then open the container to allow the usr to see the activities inside. - draw (); + draw (); + controller.activityDoubleClick(this); + }else { Debugger.log ('SingleClicking:+' + this, Debugger.GEN, 'localOnPress', 'LearnerOptionalActivity'); _doubleClicking = false; @@ -210,7 +230,7 @@ private function localOnRelease ():Void{ Debugger.log ('_doubleClicking:' + _doubleClicking + ', localOnRelease:' + this, Debugger.GEN, 'localOnRelease', 'LearnerOptionalActivity'); - if (_locked){ + if (_locked && !_doubleClicking){ _locked = false; gotoAndStop('collapse') childHolder_mc._visible = false; @@ -227,7 +247,41 @@ private function localOnReleaseOutside():Void { Debugger.log ('localOnReleaseOutside:' + this, Debugger.GEN, 'localOnReleaseOutside', 'LearnerOptionalActivity'); - } + } + + /** + * return new children array + * + * @usage + * @param child1 First child + * @param child2 Second child + * @return new ordered children array + */ + + private function orderParallelActivities(child1:Activity, child2:Activity):Array{ + return new Array(child1,child2); + } + + public function get controller(){ + if(isLearnerModule()){ + return LessonController(_controller); + } else { + return MonitorController(_controller); + } + } + + public function isLearnerModule():Boolean{ + if(app.module == 'learner'){ + return true; + } else { + return false; + } + } + + public function get activityStatus():String{ + return actStatus; + } + /** * * @usage