Index: lams_central/src/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== diff -u -refde5f59a105c5e583faeced02ae29a9cb8d819c -r6ab25b5b1b81cff862bfc98b2c6692433f025c72 --- lams_central/src/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision efde5f59a105c5e583faeced02ae29a9cb8d819c) +++ lams_central/src/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 6ab25b5b1b81cff862bfc98b2c6692433f025c72) @@ -56,7 +56,8 @@ Debugger.log('Check if transition tool active :'+_canvasModel.isTransitionToolActive(),Debugger.GEN,'activityClick','CanvasController'); //if transition tool active if(_canvasModel.isTransitionToolActive()){ - var transitionTarget = createValidTransitionTarget(ca); + + var transitionTarget = createValidTransitionTarget(ca); if(transitionTarget instanceof LFError){ transitionTarget.showErrorAlert(null); //transitionTarget.showMessageConfirm() @@ -109,19 +110,6 @@ if(_canvasModel.isDragging){ ca.stopDrag(); - //if we are on the bin - trash it - - if (ca.hitTest(_canvasModel.getCanvas().bin)){ - trace("Activity "+ca.activity.title+" has hit the bin") - if (ca.activity.activityTypeID == Activity.OPTIONAL_ACTIVITY_TYPE || ca.activity.activityTypeID == Activity.PARALLEL_ACTIVITY_TYPE){ - trace("Complex Activity has hit the bin") - _canvasModel.removeComplexActivity(ca); - } - //_canvasModel.removeActivity(ca.activity.activityUIID); - _canvasModel.getCanvas().removeActivity(ca.activity.activityUIID); - //_canvasModel.setDirty(); - } - var optionalOnCanvas:Array = _canvasModel.findOptionalActivities(); if (ca.activity.parentUIID != null){ @@ -142,8 +130,7 @@ ca.activity.yCoord = _ymouse - _canvasModel.getPosition().y; _canvasModel.removeOptionalCA(ca, optionalOnCanvas[i].activity.activityUIID); } else { - ca._x = ca.activity.xCoord; - ca._y = ca.activity.yCoord; + activitySnapBack(ca); } } } @@ -160,12 +147,18 @@ LFMessage.showMessageAlert(msg); }else{ if (ca.activity.isGateActivity()){ - ca._x = ca.activity.xCoord; - ca._y = ca.activity.yCoord; + activitySnapBack(ca); var msg:String = Dictionary.getValue('cv_gateoptional_hit_chk'); LFMessage.showMessageAlert(msg); }else { - _canvasModel.addParentToActivity(optionalOnCanvas[i].activity.activityUIID, ca) + //_canvasModel.addParentToActivity(optionalOnCanvas[i].activity.activityUIID, ca) + if (_canvasModel.getCanvas().ddm.getTransitionsForActivityUIID(ca.activity.activityUIID).hasTrans){ + activitySnapBack(ca); + var msg:String = Dictionary.getValue('cv_invalid_optional_activity', [ca.activity.title]); + LFMessage.showMessageAlert(msg); + }else { + _canvasModel.addParentToActivity(optionalOnCanvas[i].activity.activityUIID, ca) + } } } } @@ -175,6 +168,17 @@ } + //if we are on the bin - trash it + if (ca.hitTest(_canvasModel.getCanvas().bin)){ + trace("Activity "+ca.activity.title+" has hit the bin") + if (ca.activity.activityTypeID == Activity.OPTIONAL_ACTIVITY_TYPE || ca.activity.activityTypeID == Activity.PARALLEL_ACTIVITY_TYPE){ + trace("Complex Activity has hit the bin") + _canvasModel.removeComplexActivity(ca); + }else { + _canvasModel.removeActivityOnBin(ca.activity.activityUIID); + //_canvasModel.setDirty(); + } + } //get a view if ther is not one if(!_canvasView){ @@ -190,6 +194,7 @@ //refresh the transitions //TODO: refresh the transitions as you drag... var myTransitions = _canvasModel.getCanvas().ddm.getTransitionsForActivityUIID(ca.activity.activityUIID); + myTransitions = myTransitions.myTransitions //run in a loop ato support branches, maybe more then 2 transitions. for (var i=0; i