Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/Branch.as =================================================================== diff -u -rc00280fd5bd4810407e1105e5aad52218ff7bf6e -r26ac409edd1315ca7b866156ba035590f30d4716 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/Branch.as (.../Branch.as) (revision c00280fd5bd4810407e1105e5aad52218ff7bf6e) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/Branch.as (.../Branch.as) (revision 26ac409edd1315ca7b866156ba035590f30d4716) @@ -30,7 +30,7 @@ class Branch extends Transition { private var UIID:Number; - private var _sequenceActivity:Activity; + private var _sequenceActivity:SequenceActivity; private var _direction:Number; private var _targetUIID:Number; @@ -39,7 +39,7 @@ // TODO: add learningDesignID - public function Branch(activityUIID:Number, _dir:Number, targetUIID:Number, hubUIID:Number, sequenceActivity:Activity, learningDesignID:Number){ + public function Branch(activityUIID:Number, _dir:Number, targetUIID:Number, hubUIID:Number, sequenceActivity:SequenceActivity, learningDesignID:Number){ if(_dir == BranchConnector.DIR_FROM_START) super(null, hubUIID, targetUIID, learningDesignID); else @@ -64,7 +64,7 @@ return UIID; } - public function get sequenceActivity():Activity { + public function get sequenceActivity():SequenceActivity { return _sequenceActivity; } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as =================================================================== diff -u -rfac001f56e1427654498b0888139e2dcfff7f6a6 -r26ac409edd1315ca7b866156ba035590f30d4716 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision fac001f56e1427654498b0888139e2dcfff7f6a6) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision 26ac409edd1315ca7b866156ba035590f30d4716) @@ -302,6 +302,7 @@ if(r==null){ return new LFError("Removing branch failed:"+branchUIID,"removeBranch",this,null); }else{ + Debugger.log('Removed:'+r.branchUIID,Debugger.GEN,'removeBranch','DesignDataModel'); dispatchEvent({type:'ddmUpdate',target:this}); } @@ -337,7 +338,7 @@ var success:Boolean = false; //TODO:Validate if design is saved if not notify user success = true; - //_global.breakpoint(); + Debugger.log('Setting design ID:'+design.learningDesignID,Debugger.GEN,'setDesign','DesignDataModel'); Debugger.log('Printing the design revieced:...\n'+ObjectUtils.toString(design),Debugger.VERBOSE,'setDesign','DesignDataModel'); @@ -674,7 +675,9 @@ if(classActs.length > 0){ for(var i=0; i 0) { + for(var i=0; i 0) { + } else if(branchesSize > 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); + var b = 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; } } @@ -805,14 +812,16 @@ * @param transitionActs An array of transition activities. Must only contain 2 * @return */ - private function createBranchEndConnector(transitionActs:Array):Object{ - var fromAct:Activity = transitionActs[0]; - var toAct:Activity = transitionActs[1]; + private function createBranchEndConnector(branchActivities:Array):Object{ + var fromAct:Activity = branchActivities[0]; + var toAct:Activity = branchActivities[1]; - var sequence:Activity = _cv.ddm.getActivityByUIID(fromAct.parentUIID); + var sequence:SequenceActivity = SequenceActivity(_cv.ddm.getActivityByUIID(fromAct.parentUIID)); /** Basic validation for Branch(s)/Branch Connector(s) */ - if(_cv.ddm.getTransitionsForActivityUIID(fromAct.activityUIID).out != null) { + if(fromAct.activityUIID == activeView.endHub.activity.activityUIID) { + return new LFError("Cannot create branch from end-point."); + } else 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); @@ -1374,6 +1383,10 @@ return _selectedItem; } + public function get connectionActivities():Array { + return _connectionActivities; + } + /** * * @usage