Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/BranchingActivity.as =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/BranchingActivity.as,v diff -u -r1.6 -r1.7 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/BranchingActivity.as 14 Aug 2007 06:04:31 -0000 1.6 +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/BranchingActivity.as 5 Sep 2007 09:54:53 -0000 1.7 @@ -42,6 +42,7 @@ private var _endYCoord:Number; private var _toolActivityUIID:Number; + private var _defaultBranch:Branch; function BranchingActivity(activityUIID:Number, activityTypeID:Number){ super(activityUIID); @@ -53,6 +54,7 @@ _endYCoord = DEFAULT_ENDY; _toolActivityUIID == null; + _defaultBranch = null; } @@ -85,6 +87,7 @@ if(_endXCoord) dto.endXCoord = _endXCoord; if(_endYCoord) dto.endYCoord = _endYCoord; if(_toolActivityUIID) dto.toolActivityUIID = _toolActivityUIID; + if(_defaultBranch) dto.defaultBranch = _defaultBranch.sequenceActivity.activityUIID; return dto; } @@ -137,5 +140,13 @@ return _toolActivityUIID; } + public function set defaultBranch(a:Branch) { + _defaultBranch = a; + } + + public function get defaultBranch():Branch { + return _defaultBranch; + } + } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as =================================================================== RCS file: /usr/local/cvsroot/lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as,v diff -u -r1.16 -r1.17 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as 4 Sep 2007 05:08:34 -0000 1.16 +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as 5 Sep 2007 09:54:53 -0000 1.17 @@ -81,6 +81,7 @@ private var _groupings:Hashtable; private var _branches:Hashtable; private var _branchMappings:Hashtable; + private var _outputConditions:Hashtable; private var _licenseID:Number; @@ -105,6 +106,7 @@ _groupings = new Hashtable("_groupings"); _branches = new Hashtable("_branches"); _branchMappings = new Hashtable("_branchMappings"); + _outputConditions = new Hashtable("_outputConditions"); //set the defualts: _objectType = "LearningDesign"; @@ -295,6 +297,16 @@ return true; } + public function addOutputCondition(condition:ToolOutputCondition):Boolean { + dispatchEvent({type:'ddmBeforeUpdate',target:this}); + + _outputConditions.put(condition.conditionUIID, condition); + + dispatchEvent({type:'ddmUpdate',target:this}); + + return true; + } + /** * Removes the branch from the DDM * @usage @@ -350,7 +362,23 @@ } } + public function removeOutputCondition(conditionUIID):Object{ + //dispatch an event to show the design has changed + dispatchEvent({type:'ddmBeforeUpdate',target:this}); + + var r:Object = _outputConditions.remove(conditionUIID); + if(r==null){ + return new LFError("Removing tool output condition failed:"+conditionUIID,"removeOutputCondition",this,null); + }else{ + + Debugger.log('Removed:'+r.conditionUIID,Debugger.GEN,'removeOutputCondition','DesignDataModel'); + + dispatchEvent({type:'ddmUpdate',target:this}); + } + + } + /** * Sets a new design for the DDM. * note the design must be empty to call this, use clearCanvas(true) @@ -481,9 +509,18 @@ for(var i=0; i 0) { + LFMessage.showMessageAlert("All remaining conditions will be mapped to the default branch", Proxy.create(this, cleanupUnmappedConditions)); + } else { + //close popup + _container.deletePopUp(); + } + + } + private function cleanupUnmappedConditions(){ + for(var i=0; i < conditions_lst.length; i++) { + setupMatch(conditions_lst.getItemAt(i), _branchingActivity.defaultBranch); + } + + conditions_lst.removeAll(); + + close(); + } + + /** + * Event dispatched by parent container when close button clicked + */ + public function click(e:Object):Void{ + close(); + } + + private function addMatch():Void { - var selectedGroups:Array = new Array(); + var selectedConditions:Array = new Array(); // get selected items and put together in match if(conditions_lst.selectedItems.length > 0) { for(var i=0; i 0)) ? true : false; + setModified(); } @@ -939,15 +940,15 @@ if(!v) { _tool_output_match_btn.visible = false; _conditions_setup_btn.visible = false; return; } - var ca = _canvasModel.selectedItem; - var branches:Object = _canvasModel.getCanvas().ddm.getBranchesForActivityUIID(ca.activity.activityUIID); + var branches:Object = _canvasModel.getCanvas().ddm.getBranchesForActivityUIID(_canvasModel.selectedItem.activity.activityUIID); - if(branches.myBranches.length > 0) + if(branches.myBranches.length > 0) { _tool_output_match_btn.visible = v; + + if(_canvasModel.selectedItem.activity.toolActivityUIID != null) + _conditions_setup_btn.visible = v; + } - if(_canvasModel.selectedItem.activity.toolActivityUIID != null) - _conditions_setup_btn.visible = v; - if(e != null) { toolActs_cmb.enabled = e; _tool_output_match_btn.enabled = e; @@ -1018,13 +1019,16 @@ setModified(); } - private function onToolOutputMatchClick(evt:Object){ - - // show tool outputs to branch mappings dialog - //var ta:ToolActivity = ToolActivity(_canvasModel.getCanvas().ddm.getActivityByUIID(_canvasModel.selectedItem.activity.toolActivityUIID)); - //_canvasModel.getCanvas().getToolOutputDefinitions(ta); + public function openConditionMatchDialog():Void { + onConditionMatchClick(); + } + + private function onConditionMatchClick(evt:Object){ + // open group to branch matching window + _app.dialog = PopUpManager.createPopUp(Application.root, LFWindow, true, {title:Dictionary.getValue('condmatch_dlg_title_lbl'), closeButton:true, viewResize:false, scrollContentPath:'ConditionMatchingDialog'}); + _app.dialog.addEventListener('contentLoaded', Delegate.create(this, ConditionMatchingDialogLoaded)); - //setModified(); + setModified(); } private function onConditionsSetupClick(evt:Object){ @@ -1055,6 +1059,16 @@ evt.target.scrollContent.grouping = grouping; evt.target.scrollContent.groups = grouping.getGroups(_canvasModel.getCanvas().ddm); evt.target.scrollContent.setupGrid(); + } + + private function ConditionMatchingDialogLoaded(evt:Object) { + var branches:Object = _canvasModel.getCanvas().ddm.getBranchesForActivityUIID(_canvasModel.selectedItem.activity.activityUIID); + + evt.target.scrollContent.branchingActivity = BranchingActivity(_canvasModel.selectedItem.activity); + evt.target.scrollContent.conditions = _canvasModel.getCanvas().ddm.conditions.values(); + evt.target.scrollContent.branches = getValidBranches(branches.myBranches); + + evt.target.scrollContent.loadLists(); } private function getValidBranches(branches:Array):Array {