Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -rda1644d8e66121854689bf4c74caa46457502601 -rc9642c4efc4eebfa394d0acffd2a7178aec97526 Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -rda1644d8e66121854689bf4c74caa46457502601 -rc9642c4efc4eebfa394d0acffd2a7178aec97526 Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== diff -u -rb6aefa99414741f15c93b20323fc672ced42ccb3 -rc9642c4efc4eebfa394d0acffd2a7178aec97526 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision b6aefa99414741f15c93b20323fc672ced42ccb3) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision c9642c4efc4eebfa394d0acffd2a7178aec97526) @@ -66,12 +66,14 @@ public function activityClick(ca:Object):Void{ + _tempSelectedItem = _canvasModel.selectedItem; + _canvasModel.selectedItem = null; Debugger.log('activityClick CanvasActivity:'+ca.activity.activityUIID + ' orderID: ' + ca.activity.orderID,Debugger.GEN,'activityClick','CanvasController'); Debugger.log('Check if transition tool active :'+_canvasModel.isTransitionToolActive(),Debugger.GEN,'activityClick','CanvasController'); //if transition tool active - if(_canvasModel.isTransitionToolActive()){ + if(_canvasModel.isTransitionToolActive()) { var transitionTarget = createValidTransitionTarget(ca, true); if(transitionTarget instanceof LFError){ @@ -82,11 +84,8 @@ _canvasModel.activeView.initDrawTempTrans(); } - }else{ - - //just select the activity - var parentAct = _canvasModel.getCanvas().ddm.getActivityByUIID(ca.activity.parentUIID); - + } else { + if(ca.activity.parentUIID != null && (parentAct.isParallelActivity() || ca.activity.isOptionalSequenceActivity(parentAct))) { _canvasModel.isDragging = false; @@ -95,26 +94,28 @@ _canvasModel.isDragging = true; } + var parentAct = _canvasModel.getCanvas().ddm.getActivityByUIID(ca.activity.parentUIID); + var parentSelectedAct = _canvasModel.getCanvas().ddm.getActivityByUIID(_tempSelectedItem.activity.parentUIID); + var optionalOnCanvas:Array = _canvasModel.findOptionalActivities(); - if(_tempSelectedItem.activity.parentUIID == parentAct.activityUIID && _tempSelectedItem != ca) { + if(_tempSelectedItem != null) { + + // clear currently selected activity + for (var i=0; i ca._x) ? 0 : 1; + if(selectedIndex != null) { + if(oChildren[selectedIndex] != ca.activity) { + // remove ca from sequence + Debugger.log("selectedIndex order: " + Activity(oChildren[selectedIndex]).orderID, Debugger.CRITICAL, "moveOptionalSequenceCA", "CanvasModel"); + Debugger.log("ca order: " + ca.activity.orderID, Debugger.CRITICAL, "moveOptionalSequenceCA", "CanvasModel"); - unhookOptionalSequenceCA(ca); - addOptionalSequenceCA(ca, oChildren[selectedIndex], _dir); - - return true; - } + //var _dir:Number = (Activity(oChildren[selectedIndex]).orderID < ca.activity.orderID) ? 0 : 1; + var _dir:Number = (ca.activity.xCoord > ca._x) ? 0 : 1; + + unhookOptionalSequenceCA(ca); + addOptionalSequenceCA(ca, oChildren[selectedIndex], _dir); + + return true; + } + } return false; } @@ -485,7 +488,7 @@ if(transition != null) { targetActivity = (_dir == 0) ? _cv.ddm.getActivityByUIID(transition.fromUIID) : _cv.ddm.getActivityByUIID(transition.toUIID); } else { - ComplexActivity(sequence).firstActivityUIID = (_dir == 0) ? ca.activity.activityUIID : nextOrPrevActivity.activityUIID; + if(_dir == 0) ComplexActivity(sequence).firstActivityUIID = ca.activity.activityUIID; } Debugger.log("targetActivity order: " + targetActivity.orderID, Debugger.CRITICAL, "addOptionalSequenceCA", "CanvasModel"); @@ -969,7 +972,7 @@ if(ddm_activity.parentActivityID > 0 || ddm_activity.parentUIID > 0){ var parentAct; if((parentAct = _cv.ddm.activities.get(ddm_activity.parentUIID)) != null) - if(parentAct.activityTypeID == Activity.SEQUENCE_ACTIVITY_TYPE) + if(parentAct.activityTypeID == Activity.SEQUENCE_ACTIVITY_TYPE && !parentAct.isOptionalSequenceActivity(_cv.ddm.activities.get(parentAct.parentUIID))) return r = "NEW_SEQ_CHILD"; return r = "CHILD";