Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -rb702dd3f3a7d6e7e5c8af1e240aee8e1ee2edeed -r72685d659861b2cc84b109799cc20738ae839fad Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -rb702dd3f3a7d6e7e5c8af1e240aee8e1ee2edeed -r72685d659861b2cc84b109799cc20738ae839fad Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as =================================================================== diff -u -rfe232584cdc0697b18352afeb9ff46eab0dc856a -r72685d659861b2cc84b109799cc20738ae839fad --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision fe232584cdc0697b18352afeb9ff46eab0dc856a) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision 72685d659861b2cc84b109799cc20738ae839fad) @@ -193,6 +193,30 @@ } /** + * Removes the complex activity (and children) from only DDM (no canvas items) + * @usage + * @param activityUIID + * @return + */ + public function removeComplexActivity(activityUIID:Number, _children:Array, removeTrans:Boolean):Void{ + + for(var i=0; i<_children.length; i++) { + var _nChildren:Array = getComplexActivityChildren(_children[i].activityUIID); + if(_nChildren.length > 0) { + removeComplexActivity(_children[i].activityUIID, _nChildren, removeTrans); + } else { + removeActivity(_children[i].activityUIID); + if(removeTrans) removeTransitionByConnection(_children[i].activityUIID); + } + + } + + removeActivity(activityUIID); + if(removeTrans) removeTransitionByConnection(_children[i].activityUIID); + + } + + /** * Adds a transition to the DDM * @usage * @param transition @@ -1566,6 +1590,16 @@ public function get saveMode ():Number { return _saveMode; } + + public function getNextSequenceOrderID(activityUIID:Number):Number { + var _children:Array = getComplexActivityChildren(activityUIID); + _children.sortOn('orderID', Array.NUMERIC | Array.DESCENDING); + + if(_children.length > 0) + return _children[0].orderID+1; + else + return 0; + } } \ No newline at end of file Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as =================================================================== diff -u -rdee8f3e886e170f502a05d559769c4fff6cdf291 -r72685d659861b2cc84b109799cc20738ae839fad --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as (.../Canvas.as) (revision dee8f3e886e170f502a05d559769c4fff6cdf291) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as (.../Canvas.as) (revision 72685d659861b2cc84b109799cc20738ae839fad) @@ -384,12 +384,19 @@ //select the new thing if (taParent != undefined || taParent != null){ + var sequenceAct:Activity = canvasModel.getCanvas().ddm.getActivityByUIID(taParent); + if(sequenceAct.isSequenceActivity()) { + actToAdd.orderID = canvasModel.getCanvas().ddm.getNextSequenceOrderID(sequenceAct.activityUIID); + if(actToAdd.orderID > 1) canvasModel.createSequenceTransition(sequenceAct, actToAdd); + + canvasModel.removeActivity(sequenceAct.parentUIID); + } + actToAdd.parentUIID = taParent; - canvasModel.removeActivity(actToAdd.activityUIID); + canvasModel.removeActivity(taParent); - var sequenceAct:Activity; - if((sequenceAct = canvasModel.getCanvas().ddm.getActivityByUIID(taParent)).isSequenceActivity()) - canvasModel.removeActivity(sequenceAct.parentUIID); + canvasModel.removeActivity(actToAdd.activityUIID); + } canvasModel.setDirty(); Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== diff -u -rb702dd3f3a7d6e7e5c8af1e240aee8e1ee2edeed -r72685d659861b2cc84b109799cc20738ae839fad --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision b702dd3f3a7d6e7e5c8af1e240aee8e1ee2edeed) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 72685d659861b2cc84b109799cc20738ae839fad) @@ -213,7 +213,11 @@ } if(selectedSequence != null) { + ca.activity.orderID = _canvasModel.getCanvas().ddm.getNextSequenceOrderID(selectedSequence.activity.activityUIID); _canvasModel.addParentToActivity(selectedSequence.activity.activityUIID, ca, false); + + if(ca.activity.orderID > 1) _canvasModel.createSequenceTransition(selectedSequence.activity, ca.activity); + CanvasSequenceActivity(selectedSequence).updateChildren(); CanvasOptionalActivity(_canvasModel.activitiesDisplayed.get(selectedSequence.activity.parentUIID)).updateChildren(); } else { @@ -222,18 +226,6 @@ LFMessage.showMessageAlert(msg); } - /**var dropTarget:Object = eval(ca._droptarget); - - if(dropTarget._parent instanceof CanvasSequenceActivity) { - _canvasModel.addParentToActivity(dropTarget._parent.activity.activityUIID, ca, false); - CanvasSequenceActivity(dropTarget._parent).updateChildren(); - } else { - activitySnapBack(ca); - var msg:String = Dictionary.getValue('activityDrop_optSequence_error_msg'); - LFMessage.showMessageAlert(msg); - } - */ - } else { _canvasModel.addParentToActivity(optionalOnCanvas[i].activity.activityUIID, ca, false); var newChildren:Array = _canvasModel.getCanvas().ddm.getComplexActivityChildren(optionalOnCanvas[i].activity.activityUIID); Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as =================================================================== diff -u -rd25e9238849c5bd874163f8433c94b6d606c3433 -r72685d659861b2cc84b109799cc20738ae839fad --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as (.../CanvasModel.as) (revision d25e9238849c5bd874163f8433c94b6d606c3433) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as (.../CanvasModel.as) (revision 72685d659861b2cc84b109799cc20738ae839fad) @@ -151,6 +151,32 @@ } /** + * Create a transition between two activities in a Sequence Activity (in Optional). + * + * @usage + * @param sequence + * @param toActivity + * @return + */ + + public function createSequenceTransition(sequence:Activity, toActivity:Activity):Void { + var fromActivity:Activity + var _children:Array = _cv.ddm.getComplexActivityChildren(sequence.activityUIID); + _children.sortOn('orderID', Array.NUMERIC); + + var _index:Number = toActivity.orderID - 2; + if(_index >= 0) { + fromActivity = _children[_index]; + + addActivityToTransition(fromActivity); + addActivityToTransition(toActivity); + resetTransitionTool(); + } + + setDirty(); + } + + /** * Creates a new gate activity at the specified location * @usage * @param gateTypeID @@ -377,7 +403,7 @@ public function removeComplexActivityChildren(children){ for (var k=0; k0; j--) - retArr.push(Number(children_mc[children_mc.length - j].activity.activityUIID)); + retArr.push(children_mc[children_mc.length - j]); return retArr; } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasSequenceActivity.as =================================================================== diff -u -rb702dd3f3a7d6e7e5c8af1e240aee8e1ee2edeed -r72685d659861b2cc84b109799cc20738ae839fad --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasSequenceActivity.as (.../CanvasSequenceActivity.as) (revision b702dd3f3a7d6e7e5c8af1e240aee8e1ee2edeed) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasSequenceActivity.as (.../CanvasSequenceActivity.as) (revision 72685d659861b2cc84b109799cc20738ae839fad) @@ -158,6 +158,9 @@ refresh(); } + if(_children.length > 0) + SequenceActivity(_activity).empty = false; + removeAllChildren(); children_mc = new Array(); @@ -175,6 +178,8 @@ children_mc[i].activity.yCoord = CHILD_OFFSET_Y; children_mc[i]._visible = true; + + Debugger.log("orderID: " + _children[i].orderID, Debugger.CRITICAL, "init", "CanvasSequenceActivity"); } @@ -440,6 +445,10 @@ return children_mc; } + public function get actChildren():Array { + return _children; + } + public function setSize(w:Number, h:Number):Void { _visibleWidth = w; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/PropertyInspector.as =================================================================== diff -u -r7ebecb967699a51f248699d35e142cc22bdd7cca -r72685d659861b2cc84b109799cc20738ae839fad --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/PropertyInspector.as (.../PropertyInspector.as) (revision 7ebecb967699a51f248699d35e142cc22bdd7cca) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/PropertyInspector.as (.../PropertyInspector.as) (revision 72685d659861b2cc84b109799cc20738ae839fad) @@ -497,16 +497,16 @@ } } - private function removeSequenceItems(itemsToRemove, overwrite:Boolean):Void { + private function removeSequenceItems(itemsToRemove:Array, overwrite:Boolean):Void { for(var i=0; i 0 && !overwrite) { - LFMessage.showMessageConfirm(Dictionary.getValue('pi_optSequence_remove_msg'), Proxy.create(this, removeSequenceItems, itemsToRemove, true), null, null, null, Dictionary.getValue('pi_optSequence_remove_msg_title')); + if(itemsToRemove[i].actChildren.length > 0 && !overwrite) { + LFMessage.showMessageConfirm(Dictionary.getValue('pi_optSequence_remove_msg'), Proxy.create(this, removeSequenceItems, itemsToRemove, true), Proxy.create(this, onUpdateOptionalSequenceData), null, null, Dictionary.getValue('pi_optSequence_remove_msg_title')); + return; } else { - _canvasModel.getCanvas().ddm.removeActivity(itemsToRemove[i]); + _canvasModel.getCanvas().ddm.removeComplexActivity(itemsToRemove[i].activity.activityUIID, itemsToRemove[i].actChildren, true); } } - _canvasModel.setDirty(); this.onEnterFrame = onUpdateOptionalSequenceData; } @@ -515,8 +515,7 @@ for(var i=0; i