Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/ToolActivity.as =================================================================== diff -u -r94869995ad20ccd5abbbf9c137934e562110376d -r6f4fd0fe7fee43ab750ec98ea12fb3f1b4cb07b5 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/ToolActivity.as (.../ToolActivity.as) (revision 94869995ad20ccd5abbbf9c137934e562110376d) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/ToolActivity.as (.../ToolActivity.as) (revision 6f4fd0fe7fee43ab750ec98ea12fb3f1b4cb07b5) @@ -253,6 +253,10 @@ _toolOutputDefinitions.remove(key); } + public function get definitions():Array { + return _toolOutputDefinitions.values(); + } + //GETTERS + SETTERS /** Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/ToolOutputCondition.as =================================================================== diff -u -r94869995ad20ccd5abbbf9c137934e562110376d -r6f4fd0fe7fee43ab750ec98ea12fb3f1b4cb07b5 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/ToolOutputCondition.as (.../ToolOutputCondition.as) (revision 94869995ad20ccd5abbbf9c137934e562110376d) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/ToolOutputCondition.as (.../ToolOutputCondition.as) (revision 6f4fd0fe7fee43ab750ec98ea12fb3f1b4cb07b5) @@ -33,7 +33,7 @@ private var _conditionID:Number; private var _conditionUIID:Number; - private var _orderId:Number; + private var _orderID:Number; private var _name:String; private var _type:String; private var _startValue:Object; @@ -43,7 +43,7 @@ function ToolOutputCondition(conditionID:Number, conditionUIID:Number, name:String, type:String, startValue:Object, endValue:Object, exactMatchValue:Object){ _conditionID = conditionID; _conditionUIID = conditionUIID; - _orderId = 1; + _orderID = 1; _name = name; _startValue = startValue; _endValue = endValue; @@ -52,7 +52,7 @@ public function addConditionData(dto:Object):Object { - if(_orderId) dto.orderId = _orderId; + if(_orderID) dto.orderID = _orderID; if(_name) dto.name = _name; if(_type) dto.type = _type; if(_startValue) dto.startValue = _startValue; @@ -118,12 +118,12 @@ return _exactMatchValue; } - public function set orderId(a:Number) { - _orderId = a; + public function set orderID(a:Number) { + _orderID = a; } - public function get orderId():Number { - return _orderId; + public function get orderID():Number { + return _orderID; } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/ToolOutputConditionsDialog.as =================================================================== diff -u --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/ToolOutputConditionsDialog.as (revision 0) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/br/ToolOutputConditionsDialog.as (revision 6f4fd0fe7fee43ab750ec98ea12fb3f1b4cb07b5) @@ -0,0 +1,257 @@ +/*************************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * ************************************************************************ + */ + +import org.lamsfoundation.lams.authoring.br.*; + +import org.lamsfoundation.lams.common.Dialog; +import org.lamsfoundation.lams.common.style.*; +import org.lamsfoundation.lams.common.dict.*; +import org.lamsfoundation.lams.common.util.*; + +import mx.controls.* +import mx.controls.gridclasses.DataGridColumn; +import mx.utils.* +import mx.managers.* +import mx.events.* + +/** + * + * @author Mitchell Seaton + * @version 2.1 + **/ +class ToolOutputConditionsDialog extends MovieClip implements Dialog { + //References to components + clips + private var _container:MovieClip; //The container window that holds the dialog + + private var _definitions:Array; + private var _conditions:Array; + private var _selectedDefinition:Object; + + + private var _toolOutputDefin_cmb:ComboBox; + private var _condition_item_dgd:DataGrid; + + private var _start_value_stp:NumericStepper; + private var _end_value_stp:NumericStepper; + + private var add_btn:Button; + private var close_btn:Button; + + private var _output_type_lbl:Label; + private var _condition_range_lbl:Label; + + private var _bgpanel:MovieClip; //The underlaying panel base + + private var fm:FocusManager; //Reference to focus manager + private var themeManager:ThemeManager; //Theme manager + + //Dimensions for resizing + private var xOkOffset:Number; + private var yOkOffset:Number; + private var xCancelOffset:Number; + private var yCancelOffset:Number; + + //These are defined so that the compiler can 'see' the events that are added at runtime by EventDispatcher + private var dispatchEvent:Function; + public var addEventListener:Function; + public var removeEventListener:Function; + + + function ToolOutputConditionsDialog(){ + //Set up this class to use the Flash event delegation model + EventDispatcher.initialize(this); + + //Create a clip that will wait a frame before dispatching init to give components time to setup + this.onEnterFrame = init; + } + + /** + * Called a frame after movie attached to allow components to initialise + */ + private function init():Void{ + //Delete the enterframe dispatcher + delete this.onEnterFrame; + + //set the reference to the StyleManager + themeManager = ThemeManager.getInstance(); + + //EVENTS + //Add event listeners close button + close_btn.addEventListener('click',Delegate.create(this, close)); + add_btn.addEventListener('click',Delegate.create(this, addCondition)); + + _toolOutputDefin_cmb.addEventListener('change', Delegate.create(this, itemChanged)); + + //Assign Click (close button) and resize handlers + _container.addEventListener('click',this); + _container.addEventListener('size',this); + + //work out offsets from bottom RHS of panel + xOkOffset = _bgpanel._width - close_btn._x; + yOkOffset = _bgpanel._height - close_btn._y; + + //Register as listener with StyleManager and set Styles + themeManager.addEventListener('themeChanged',this); + + setLabels(); + setStyles(); + + //fire event to say we have loaded + _container.contentLoaded(); + } + + /** + * Event fired by StyleManager class to notify listeners that Theme has changed + * it is up to listeners to then query Style Manager for relevant style info + */ + public function themeChanged(evt:Object):Void{ + if(evt.type=='themeChanged') { + //Theme has changed so update objects to reflect new styles + setStyles(); + }else { + Debugger.log('themeChanged event broadcast with an object.type not equal to "themeChanged"',Debugger.CRITICAL,'themeChanged','org.lamsfoundation.lams.WorkspaceDialog'); + } + } + + private function setLabels(){ + _condition_range_lbl.text = "Range:"; + _output_type_lbl.text = "Output Type:"; + + //Set the text for buttons + close_btn.label = Dictionary.getValue('al_done'); + add_btn.label = "+ Add"; + } + + /** + * Called on initialisation and themeChanged event handler + */ + private function setStyles(){ + //LFWindow, goes first to prevent being overwritten with inherited styles. + var styleObj = themeManager.getStyleObject('LFWindow'); + _container.setStyle('styleName', styleObj); + + //Get the button style from the style manager and apply to both buttons + styleObj = themeManager.getStyleObject('button'); + close_btn.setStyle('styleName', styleObj); + add_btn.setStyle('styleName', styleObj); + + styleObj = themeManager.getStyleObject('CanvasPanel'); + _bgpanel.setStyle('styleName', styleObj); + + //Apply label style + styleObj = themeManager.getStyleObject('label'); + _condition_range_lbl.setStyle('styleName', styleObj); + _output_type_lbl.setStyle('styleName', styleObj); + + styleObj = themeManager.getStyleObject('picombo'); + _toolOutputDefin_cmb.setStyle('styleName', styleObj); + + styleObj = themeManager.getStyleObject('numericstepper'); + _start_value_stp.setStyle('styleName', styleObj); + _end_value_stp.setStyle('styleName', styleObj); + } + + /** + * Called by ADD button + * + * @usage + * @return + */ + + private function addCondition():Void { + + } + + private function itemChanged(evt:Object):Void { + _selectedDefinition = evt.target.value; + + _output_type_lbl.text = "Output Type: " + _selectedDefinition.type; + + if(_selectedDefinition.type == "OUTPUT_LONG") { + + _start_value_stp.visible = true; + _end_value_stp.visible = true; + + _start_value_stp.minimum = _selectedDefinition.startValue; + _end_value_stp.minimum = _selectedDefinition.startValue; + _start_value_stp.maximum = _selectedDefinition.endValue; + _end_value_stp.maximum = _selectedDefinition.endValue; + + _start_value_stp.value = _selectedDefinition.startValue; + _end_value_stp.value = _selectedDefinition.endValue; + } else { + _start_value_stp.visible = false; + _end_value_stp.visible = false; + } + + } + + /** + * Called by the CLOSE button + */ + private function close(){ + + _container.deletePopUp(); + } + + /** + * Event dispatched by parent container when close button clicked + */ + public function click(e:Object):Void{ + e.target.deletePopUp(); + } + + /** + * Main resize method, called by scrollpane container/parent + */ + public function setSize(w:Number,h:Number):Void{ + //Size the panel + _bgpanel.setSize(w,h); + + //Buttons + close_btn.move(w-xOkOffset,h-yOkOffset); + + } + + //Gets+Sets + + public function set definitions(a:Array):Void { + _definitions = a; + + _toolOutputDefin_cmb.dataProvider = _definitions; + _toolOutputDefin_cmb.labelField = "name"; + + _toolOutputDefin_cmb.redraw(true); + } + + public function get definitions():Array { + return _definitions; + } + + /** + * set the container refernce to the window holding the dialog + */ + function set container(value:MovieClip){ + _container = value; + } +} \ No newline at end of file Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as =================================================================== diff -u -r94869995ad20ccd5abbbf9c137934e562110376d -r6f4fd0fe7fee43ab750ec98ea12fb3f1b4cb07b5 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as (.../Canvas.as) (revision 94869995ad20ccd5abbbf9c137934e562110376d) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as (.../Canvas.as) (revision 6f4fd0fe7fee43ab750ec98ea12fb3f1b4cb07b5) @@ -509,13 +509,22 @@ getToolOutputDefinitions(ta); } - public function setToolOutputDefinitions(dto:Object, toolActivity:ToolActivity) { - if(dto instanceof LFError){ + public function setToolOutputDefinitions(r:Object, toolActivity:ToolActivity) { + if(r instanceof LFError){ Cursor.showCursor(Application.C_DEFAULT); - dto.showErrorAlert(); + r.showErrorAlert(); } - toolActivity.addDefinition(dto); + if(r.length > 0) { + for(var i=0; i < r.length; i++) { + Debugger.log("adding def: " + r[i].name, Debugger.CRITICAL, "setToolOutputDefinitions", "Canvas"); + toolActivity.addDefinition(r[i]); + } + } + + canvasModel.broadcastViewUpdate("OPEN_CONDITIONS_DIALOG", toolActivity); + Debugger.log("total def: " + toolActivity.definitions.length, Debugger.CRITICAL, "setToolOutputDefinitions", "Canvas"); + } /** Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== diff -u -rbd2250d190598e8e706bdd0907bcc5ebdf397c98 -r6f4fd0fe7fee43ab750ec98ea12fb3f1b4cb07b5 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision bd2250d190598e8e706bdd0907bcc5ebdf397c98) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 6f4fd0fe7fee43ab750ec98ea12fb3f1b4cb07b5) @@ -29,9 +29,11 @@ import org.lamsfoundation.lams.common.ui.* import org.lamsfoundation.lams.common.dict.* import com.polymercode.Draw; -import mx.utils.* +import mx.utils.*; +import mx.managers.*; + /* * Makes changes to the Canvas Authoring model's data based on user input. */ @@ -661,4 +663,18 @@ } } + + public function openToolOutputConditionsDialog(ta:ToolActivity){ + // open group to branch matching window + app.dialog = PopUpManager.createPopUp(Application.root, LFWindow, true, {title:Dictionary.getValue('to_conditions_dlg_title_lbl'), closeButton:true, viewResize:false, scrollContentPath:'ToolOutputConditionsDialog'}); + app.dialog.addEventListener('contentLoaded', Proxy.create(this, ToolOutputConditionsDialogLoaded, ta)); + + Debugger.log("conditions button pressed", Debugger.CRITICAL, "openToolOutputConditionsDialog", "CanvasController"); + } + + private function ToolOutputConditionsDialogLoaded(evt:Object, ta:ToolActivity) { + evt.target.scrollContent.definitions = ta.definitions; + Debugger.log("def length: " + ta.definitions.length, Debugger.CRITICAL, "ToolOutputConditionsDialogLoaded", "CanvasController"); + } + } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasView.as =================================================================== diff -u -rbd2250d190598e8e706bdd0907bcc5ebdf397c98 -r6f4fd0fe7fee43ab750ec98ea12fb3f1b4cb07b5 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasView.as (.../CanvasView.as) (revision bd2250d190598e8e706bdd0907bcc5ebdf397c98) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasView.as (.../CanvasView.as) (revision 6f4fd0fe7fee43ab750ec98ea12fb3f1b4cb07b5) @@ -134,6 +134,9 @@ case 'POSITION_TITLEBAR': setDesignTitle(cm); break; + case 'OPEN_CONDITIONS_DIALOG': + getController().openToolOutputConditionsDialog(event.data); + break; case 'SET_ACTIVE' : Debugger.log('setting activie :' + event.updateType + " event.data: " + event.data + " condition: " + (event.data == this),Debugger.CRITICAL,'update','org.lamsfoundation.lams.CanvasView'); transparentCover._visible = (event.data == this) ? false : true; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/PropertyInspectorControls.as =================================================================== diff -u -r94869995ad20ccd5abbbf9c137934e562110376d -r6f4fd0fe7fee43ab750ec98ea12fb3f1b4cb07b5 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/PropertyInspectorControls.as (.../PropertyInspectorControls.as) (revision 94869995ad20ccd5abbbf9c137934e562110376d) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/PropertyInspectorControls.as (.../PropertyInspectorControls.as) (revision 6f4fd0fe7fee43ab750ec98ea12fb3f1b4cb07b5) @@ -1021,28 +1021,18 @@ 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); + //var ta:ToolActivity = ToolActivity(_canvasModel.getCanvas().ddm.getActivityByUIID(_canvasModel.selectedItem.activity.toolActivityUIID)); + //_canvasModel.getCanvas().getToolOutputDefinitions(ta); - setModified(); + //setModified(); } private function onConditionsSetupClick(evt:Object){ - - // open group to branch matching window - //_app.dialog = PopUpManager.createPopUp(Application.root, LFWindow, true, {title:Dictionary.getValue('to_conditions_dlg_title_lbl'), closeButton:true, viewResize:false, scrollContentPath:'ToolOutputConditionsDialog'}); - //_app.dialog.addEventListener('contentLoaded', Delegate.create(this,ToolOutputConditionsDialogLoaded)); - Debugger.log("conditions button pressed", Debugger.CRITICAL, "onConditionsSetupClick", "PIC*"); - - setModified(); - } - - private function ToolOutputConditionsDialogLoaded(evt:Object) { + // show tool outputs to branch mappings dialog var ta:ToolActivity = ToolActivity(_canvasModel.getCanvas().ddm.getActivityByUIID(_canvasModel.selectedItem.activity.toolActivityUIID)); - evt.target.scrollContent.definitions = _canvasModel.getCanvas().getToolOutputDefinitions(ta); + _canvasModel.getCanvas().getToolOutputDefinitions(ta); - //evt.target.scrollContent.load(); - + setModified(); } private function groupMatchDialogLoaded(evt:Object) {