Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -r5b9f0b150997ca847824b7beba180b2a1006a68c -r9d3bd5bd2814fd52c12c81266be61f30b522ec01 Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -r5b9f0b150997ca847824b7beba180b2a1006a68c -r9d3bd5bd2814fd52c12c81266be61f30b522ec01 Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as =================================================================== diff -u -r5b9f0b150997ca847824b7beba180b2a1006a68c -r9d3bd5bd2814fd52c12c81266be61f30b522ec01 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision 5b9f0b150997ca847824b7beba180b2a1006a68c) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/CanvasBranchView.as (.../CanvasBranchView.as) (revision 9d3bd5bd2814fd52c12c81266be61f30b522ec01) @@ -249,8 +249,8 @@ mx.transitions.TransitionManager.start(this, {type:mx.transitions.Zoom, direction:0, duration:1, easing:mx.transitions.easing.Bounce.easeOut}); - - dispatchEvent({type:'press', target:this.startHub}); + + getController().activityRelease(this.startHub); } private function close():Void { @@ -396,6 +396,9 @@ * @return */ private function drawBranch(b:Branch, cm:CanvasModel):Boolean{ + + if(!cm.isActiveView(this)) return false; + var cbv = CanvasBranchView(this); var cbc = getController(); Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== diff -u -rfac001f56e1427654498b0888139e2dcfff7f6a6 -r9d3bd5bd2814fd52c12c81266be61f30b522ec01 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision fac001f56e1427654498b0888139e2dcfff7f6a6) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 9d3bd5bd2814fd52c12c81266be61f30b522ec01) @@ -433,7 +433,16 @@ if(_canvasModel.isDragging){ bc.stopDrag(); if(bc.hitTest(_canvasModel.getCanvas().bin) && !isBranchTargetReadOnly(bc, Dictionary.getValue("cv_element_readOnly_action_del"))){ - _canvasModel.getCanvas().removeBranch(bc.branch.branchUIID); + var branchesToDelete:Array; + if(bc.branch.direction == BranchConnector.DIR_FROM_START) { + branchesToDelete = _canvasModel.getCanvas().ddm.getBranchesForActivityUIID(bc.branch.sequenceActivity.activityUIID); + for(var i=0; i 0) { + if(_connectionActivities[0].activityUIID == activeView.startHub.activity.activityUIID || activity.activityUIID == activeView.endHub.activity.activityUIID) { return addActivityToBranch(activity); } else { return addActivityToTransition(activity); } + } - + _connectionActivities.push(activity); + return true; } @@ -617,14 +621,17 @@ } //lets make the connection - var b:Branch = (toAct == activeView.endHub.activity.activityUIID) ? createBranchEndConnector(_connectionActivities) + var b:Object = (toAct == activeView.endHub.activity.activityUIID || fromAct == activeView.endHub.activity.activityUIID) ? createBranchEndConnector(_connectionActivities) : createBranchStartConnector(_connectionActivities); Debugger.log('No validation errors, creating branch.......' + b,Debugger.GEN,'addActivityToBranch','CanvasModel'); //add it to the DDM - if(b != null) - var success:Object = _cv.ddm.addBranch(b); + if(b instanceof LFError) { + return b; + } else { + var success:Object = _cv.ddm.addBranch(Branch(b)); + } //flag the model as dirty and trigger a refresh _cv.stopTransitionTool(); @@ -698,9 +705,21 @@ if ((transitionsArray[i].toUIID == toAct && transitionsArray[i].fromUIID == fromAct) || (transitionsArray[i].toUIID == fromAct && transitionsArray[i].fromUIID == toAct)){ return new LFError(Dictionary.getValue('cv_invalid_trans_circular_sequence'),"addActivityToTransition",this); } - + } + + var branchesArray:Array = _cv.ddm.branches.values(); + + for(var i=0; i 0) { + return new LFError("Cannot create start-branch connection to Activity in a already connected Sequence.", "createBranchStartConnector", this); + } else { + var b:Branch = new Branch(_cv.ddm.newUIID(), BranchConnector.DIR_FROM_START, toAct.activityUIID, activeView.startHub.activity.activityUIID, activeView.defaultSequenceActivity, _cv.ddm.learningDesignID); + createNewSequenceActivity(activeView.activity); + + return b; + } } /** * @usage * @param transitionActs An array of transition activities. Must only contain 2 * @return */ - private function createBranchEndConnector(transitionActs:Array):Branch{ + private function createBranchEndConnector(transitionActs:Array):Object{ var fromAct:Activity = transitionActs[0]; var toAct:Activity = transitionActs[1]; var sequence:Activity = _cv.ddm.getActivityByUIID(fromAct.parentUIID); - var b:Branch = (_cv.ddm.getBranchesForActivityUIID(sequence.activityUIID).myBranches.length > 0) ? new Branch(_cv.ddm.newUIID(), BranchConnector.DIR_TO_END, fromAct.activityUIID, activeView.endHub.activity.activityUIID, sequence, _cv.ddm.learningDesignID) - : null; - return b; + + /** Basic validation for Branch(s)/Branch Connector(s) */ + if(_cv.ddm.getTransitionsForActivityUIID(fromAct.activityUIID).out != null) { + return new LFError("Cannot create end-branch connection to Activity with outward Transition", "createBranchEndConnector", this); + } else if(_cv.ddm.getBranchesForActivityUIID(sequence.activityUIID).myBranches.length <= 0) { + return new LFError("Cannot create end-branch connection to an unconnected Sequence.", "createBranchStartConnector", this); + } else { + return new Branch(_cv.ddm.newUIID(), BranchConnector.DIR_TO_END, fromAct.activityUIID, activeView.endHub.activity.activityUIID, sequence, _cv.ddm.learningDesignID); + } } public function moveActivitiesToBranchSequence(activityUIID:Number, sequence:SequenceActivity):Boolean { Index: lams_flash/src/common/flash/LFWindow.fla =================================================================== diff -u -rd7823922f404944822957e6c051bc0f1335a76de -r9d3bd5bd2814fd52c12c81266be61f30b522ec01 Binary files differ Index: lams_flash/src/common/flash/org/lamsfoundation/lams/common/ui/LFMessage.as =================================================================== diff -u -rd7823922f404944822957e6c051bc0f1335a76de -r9d3bd5bd2814fd52c12c81266be61f30b522ec01 --- lams_flash/src/common/flash/org/lamsfoundation/lams/common/ui/LFMessage.as (.../LFMessage.as) (revision d7823922f404944822957e6c051bc0f1335a76de) +++ lams_flash/src/common/flash/org/lamsfoundation/lams/common/ui/LFMessage.as (.../LFMessage.as) (revision 9d3bd5bd2814fd52c12c81266be61f30b522ec01) @@ -61,14 +61,11 @@ //msg += "\n \n \n \n "; Alert.okLabel = Dictionary.getValue('al_ok'); if(okHandler != undefined){ - //alt = Alert.show(msg,"__Message__",Alert.OK,null,okHandler,"alertIcon_gen",Alert.OK); alt = Alert.show(msg,Dictionary.getValue('al_alert'),Alert.OK,null,okHandler,null,Alert.OK); }else{ alt = Alert.show(msg,Dictionary.getValue('al_alert'),Alert.OK,null,null,null,Alert.OK); - //alt = super.show(msg,"__Message__",Alert.OK,null,null,"alertIcon_gen",Alert.OK); } - //alt.setSize(800,250); } /** Index: lams_flash/src/common/flash/org/lamsfoundation/lams/common/util/LFError.as =================================================================== diff -u -rd7823922f404944822957e6c051bc0f1335a76de -r9d3bd5bd2814fd52c12c81266be61f30b522ec01 --- lams_flash/src/common/flash/org/lamsfoundation/lams/common/util/LFError.as (.../LFError.as) (revision d7823922f404944822957e6c051bc0f1335a76de) +++ lams_flash/src/common/flash/org/lamsfoundation/lams/common/util/LFError.as (.../LFError.as) (revision 9d3bd5bd2814fd52c12c81266be61f30b522ec01) @@ -55,18 +55,17 @@ public function showErrorAlert(okHandler){ title = Dictionary.getValue('al_alert') var a:Alert; + Alert.okLabel = Dictionary.getValue('al_ok'); + if(okHandler != undefined){ //TODO: Fix the problem of size calculation with icons - //a = Alert.show(message,"__Error__",Alert.OK,null,okHandler,"alertIcon_gen",Alert.OK); a = Alert.show(message,title,Alert.OK,null,okHandler,null,Alert.OK); }else{ - //a = Alert.show(message,"__Error__",Alert.OK,null,null,"alertIcon_gen",Alert.OK); a = Alert.show(message,title,Alert.OK,null,null,null,Alert.OK); } - a.setSize(500,250); } /** * Shows an alert confirm dialogue. It is centred in the root time line and diplays the standard LAMS alert icon @@ -79,8 +78,10 @@ var alt:Alert; var customTitle = Dictionary.getValue(msgTitle) var handlerObj = new Object(); + Alert.okLabel = Dictionary.getValue('al_send'); Alert.cancelLabel = Dictionary.getValue('al_cancel'); + handlerObj.click = function(e){ if(e.detail == Alert.OK){ okHandler(); @@ -92,16 +93,10 @@ } alt = Alert.show(msg, customTitle ,Alert.OK | Alert.CANCEL, null, handlerObj, null, Alert.OK); - //var winHeight = alt.title._height + alt.content._height + alt.buttonHeight + 10; - alt.setSize(250, 600); + + //alt.setSize(250, 600); } - - -/* - public function showErrorConfirm(okHandler:Function, cancelHandler:Function){ - - } - */ + public function get reference():Object{ return _ref; }