Index: lams_central/src/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as =================================================================== diff -u -r9289b05f17aa7b5c5b2039879ce215ac09663972 -re467d0f24c59368506f1467d27c140e47ec24906 --- lams_central/src/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as (.../CanvasModel.as) (revision 9289b05f17aa7b5c5b2039879ce215ac09663972) +++ lams_central/src/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as (.../CanvasModel.as) (revision e467d0f24c59368506f1467d27c140e47ec24906) @@ -472,6 +472,25 @@ } + private function isLoopingLD(fromAct, toAct):Boolean{ + trace("fromAct is: "+fromAct+" and toAct is: "+toAct) + var toTransitions = _cv.ddm.getTransitionsForActivityUIID(toAct) + trace("toTransitions.out"+toTransitions.out) + if (toTransitions.out != null){ + var nextAct = toTransitions.out.toUIID; + trace("next activity is: "+nextAct) + if (nextAct == fromAct){ + return true; + }else { + return isLoopingLD(fromAct, nextAct) + } + }else { + return false; + } + + } + + /** * Adds another Canvas Activity to the transition. * Only 2 may be added, adding the 2nd one triggers the creation of the transition. @@ -492,43 +511,56 @@ //TODO: show an error return new LFError("Too many activities in the Transition","addActivityToTransition",this); } + Debugger.log('Adding Activity.UIID:'+activity.activityUIID,Debugger.GEN,'addActivityToTransition','CanvasModel'); _transitionActivities.push(activity); - + var fromAct = _transitionActivities[0].activityUIID + var toAct = _transitionActivities[1].activityUIID if(_transitionActivities.length == 2){ //check we have 2 valid acts to create the transition. - if(_transitionActivities[0].activityUIID == _transitionActivities[1].activityUIID){ + if(fromAct == toAct){ return new LFError("You cannot create a Transition between the same Activities","addActivityToTransition",this); } - if(!_cv.ddm.activities.containsKey(_transitionActivities[0].activityUIID)){ + if(!_cv.ddm.activities.containsKey(fromAct)){ return new LFError("First activity of the Transition is missing, UIID:"+_transitionActivities[0].activityUIID,"addActivityToTransition",this); } - if(!_cv.ddm.activities.containsKey(_transitionActivities[1].activityUIID)){ + if(!_cv.ddm.activities.containsKey(toAct)){ return new LFError(Dictionary.getValue('cv_trans_target_act_missing'),"addActivityToTransition",this); } //check there is not already a transition to or from this activity: var transitionsArray:Array = _cv.ddm.transitions.values(); + /**/ for(var i=0;i