Index: lams_flash/src/central/flash/lams_monitoring_v1.fla =================================================================== diff -u -r4b78e5b58d8206ae34759739f4a6334323b0a245 -rf8f41dead761de750c4b69041e2d3ee5d7605df2 Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasActivity.as =================================================================== diff -u -r0359c6e95e64a4080512a533a78f185eb42f5ddc -rf8f41dead761de750c4b69041e2d3ee5d7605df2 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasActivity.as (.../CanvasActivity.as) (revision 0359c6e95e64a4080512a533a78f185eb42f5ddc) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasActivity.as (.../CanvasActivity.as) (revision f8f41dead761de750c4b69041e2d3ee5d7605df2) @@ -614,20 +614,20 @@ private function onRollOver():Void{ - if (_module == "monitoring"){ - _ccm.showCustomCM(_ccm.loadMenu("activity", "monitoring")) - }else { - _ccm.showCustomCM(_ccm.loadMenu("activity", "authoring")) - } + loadCustomContextMenu("activity"); } private function onRollOut():Void{ + loadCustomContextMenu("canvas"); + } + + private function loadCustomContextMenu(type:String):Void { if (_module == "monitoring"){ - _ccm.showCustomCM(_ccm.loadMenu("canvas", "monitoring")) + _ccm.showCustomCM(_ccm.loadMenu(type, "monitoring")) }else { - _ccm.showCustomCM(_ccm.loadMenu("canvas", "authoring")) + _ccm.showCustomCM(_ccm.loadMenu(type, "authoring")) } - } + } private function onPress():Void{ // check double-click @@ -668,11 +668,12 @@ } private function onRelease():Void{ + loadCustomContextMenu("activity"); + if(!_doubleClicking){ Debugger.log('Releasing:'+this,Debugger.GEN,'onRelease','CanvasActivity'); Debugger.log('_module:'+_module,Debugger.GEN,'onRelease','CanvasActivity'); - if (_module == "monitoring"){ _monitorController.activityRelease(this); }else { Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/Application.as =================================================================== diff -u -rde65d00b5bf887f55beabea327159f0df35f0933 -rf8f41dead761de750c4b69041e2d3ee5d7605df2 --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/Application.as (.../Application.as) (revision de65d00b5bf887f55beabea327159f0df35f0933) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/Application.as (.../Application.as) (revision f8f41dead761de750c4b69041e2d3ee5d7605df2) @@ -421,7 +421,7 @@ public function MonitorActivityContent():Void{ - var ca = _monitor.getMM().selectedItem + var ca = _monitor.getMM().selectedItem; if(CanvasActivity(ca) != null){ _monitor.getMV().getController().activityDoubleClick(ca, "MonitorTabView", null, true); } else { Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/ViewBranchConditionMappingsDialog.as =================================================================== diff -u --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/ViewBranchConditionMappingsDialog.as (revision 0) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/ViewBranchConditionMappingsDialog.as (revision f8f41dead761de750c4b69041e2d3ee5d7605df2) @@ -0,0 +1,219 @@ +/*************************************************************************** + * 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.common.* +import org.lamsfoundation.lams.common.ws.* +import org.lamsfoundation.lams.common.ui.* +import org.lamsfoundation.lams.common.util.* +import org.lamsfoundation.lams.common.dict.* +import org.lamsfoundation.lams.common.style.* + +import org.lamsfoundation.lams.authoring.BranchingActivity +import org.lamsfoundation.lams.monitoring.* + +import mx.controls.* +import mx.controls.gridclasses.DataGridColumn; +import mx.utils.* +import mx.managers.* +import mx.events.* + +/* +* Tool-Output based Condition +* Matching Dialog window +* +* @author Mitchell Seaton +*/ +class org.lamsfoundation.lams.monitoring.ViewBranchConditionMappingsDialog extends MovieClip implements Dialog { + + //References to components + clips + private var _container:MovieClip; //The container window that holds the dialog + + private var _branchingActivity:BranchingActivity; + private var _mappings:Array; + + private var close_btn:Button; // Close button + private var panel:MovieClip; //The underlaying panel base + private var conditions_dgd:DataGrid; + private var conditions_dgd_lbl:Label; + + private var fm:FocusManager; //Reference to focus manager + private var themeManager:ThemeManager; //Theme manager + + //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; + + private var xOkOffset:Number; + private var yOkOffset:Number; + + /** + * constructor + */ + function ViewBranchConditionMappingsDialog(){ + //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(); + + //get focus manager + set focus to OK button, focus manager is available to all components through getFocusManager + fm = _container.getFocusManager(); + fm.enabled = true; + + //Set the labels + conditions_dgd_lbl.text = Dictionary.getValue('branch_mapping_dlg_conditions_dgd_lbl'); + + //EVENTS + close_btn.addEventListener('click', Delegate.create(this, close)); + + //Set the text for buttons + close_btn.label = Dictionary.getValue("ls_win_learners_close_btn"); + + //work out offsets from bottom RHS of panel + xOkOffset = panel._width - close_btn._x; + yOkOffset = panel._height - close_btn._y; + + //Assign Click (close button) and resize handlers + _container.addEventListener('click',this); + _container.addEventListener('size',this); + + //Register as listener with StyleManager and set Styles + themeManager.addEventListener('themeChanged',this); + setStyles(); + + //fire event to say we have loaded + _container.contentLoaded(); + } + + public function loadLists() { + var column_condition:DataGridColumn = new DataGridColumn("displayName"); + column_condition.headerText = Dictionary.getValue("branch_mapping_dlg_condition_col_lbl"); + column_condition.width = conditions_dgd.width/2; + + var column_sequence:DataGridColumn = new DataGridColumn("sequenceName"); + column_sequence.headerText = Dictionary.getValue("branch_mapping_dlg_branch_col_lbl"); + column_sequence.width = conditions_dgd.width/2; + + conditions_dgd.addColumn(column_condition); + conditions_dgd.addColumn(column_sequence); + + for(var i=0; i < _mappings.length; i++) { + if(_mappings[i].condition.toolActivity.activityUIID == _branchingActivity.toolActivityUIID && + _mappings[i].condition.branchingActivity.activityUIID == _branchingActivity.activityUIID) { + conditions_dgd.addItem(_mappings[i]); + } + } + + } + + /** + * 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(event:Object):Void{ + if(event.type=='themeChanged') { + //Theme has changed so update objects to reflect new styles + setStyles(); + }else { + } + } + + /** + * Called by the OK button + */ + private function close(){ + //close popup + _container.deletePopUp(); + } + + /** + * 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); + + styleObj = themeManager.getStyleObject('BGPanel'); + panel.setStyle('styleName', styleObj); + + //Apply label style + styleObj = themeManager.getStyleObject('label'); + conditions_dgd_lbl.setStyle('styleName', styleObj); + } + + /** + * Event dispatched by parent container when close button clicked + */ + public function click(e:Object):Void{ + close(); + } + + /** + * Main resize method, called by scrollpane container/parent + */ + public function setSize(w:Number,h:Number):Void{ + //Size the panel + panel.setSize(w,h); + + //Buttons + close_btn.move(w-xOkOffset,h-yOkOffset); + } + + + public function set branchingActivity(a:BranchingActivity) { + _branchingActivity = a; + } + + public function get branchingActivity():BranchingActivity { + return _branchingActivity; + } + + /** + * set the container refernce to the window holding the dialog + */ + function set container(value:MovieClip){ + _container = value; + } + + public function set mappings(a:Array){ + _mappings = a; + } +} \ No newline at end of file Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as =================================================================== diff -u -r6b6d09c3963a2e944c0cb122c85479fb1f5f5ae3 -rf8f41dead761de750c4b69041e2d3ee5d7605df2 --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as (.../Monitor.as) (revision 6b6d09c3963a2e944c0cb122c85479fb1f5f5ae3) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as (.../Monitor.as) (revision f8f41dead761de750c4b69041e2d3ee5d7605df2) @@ -200,6 +200,13 @@ } + public function viewToolOutputConditions() { + var controller:MonitorController = monitorView.getController(); + + var dialog:MovieClip = PopUpManager.createPopUp(Application.root, LFWindow, true, {title:Dictionary.getValue('ccm_monitor_view_mappings'), closeButton:true, scrollContentPath:'ViewBranchConditionMappingsDialog'}); + dialog.addEventListener('contentLoaded', Delegate.create(controller, controller.viewBranchConditionMappingsDialogLoaded)); + + } /** * Called when Users loaded for role type Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as =================================================================== diff -u -r5c5d0dde4257f652d199b84921bf1182260bf959 -rf8f41dead761de750c4b69041e2d3ee5d7605df2 --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as (.../MonitorController.as) (revision 5c5d0dde4257f652d199b84921bf1182260bf959) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorController.as (.../MonitorController.as) (revision f8f41dead761de750c4b69041e2d3ee5d7605df2) @@ -30,6 +30,7 @@ import org.lamsfoundation.lams.monitoring.mv.*; import org.lamsfoundation.lams.monitoring.mv.tabviews.*; import org.lamsfoundation.lams.authoring.Activity; +import org.lamsfoundation.lams.authoring.BranchingActivity; import org.lamsfoundation.lams.authoring.cv.ICanvasActivity; import org.lamsfoundation.lams.authoring.cv.CanvasParallelActivity; import org.lamsfoundation.lams.authoring.br.CanvasBranchView; @@ -704,6 +705,19 @@ } else { //TODO DI 25/05/05 raise wrong event type error } - } + + public function viewBranchConditionMappingsDialogLoaded(evt:Object) { + if(evt.type == 'contentLoaded'){ + //set up UI + //note this function registers the dialog to recieve view updates + var branchingActivity:BranchingActivity = BranchingActivity(_monitorModel.selectedItem.activity); + + evt.target.scrollContent.branchingActivity = branchingActivity; + evt.target.scrollContent.mappings = _monitorModel.ddm.getBranchMappingsByActivityUIIDAndType(branchingActivity.activityUIID).toolBased; + evt.target.scrollContent.loadLists(); + } else { + //TODO DI 25/05/05 raise wrong event type error + } + } } \ No newline at end of file Index: lams_flash/src/common/flash/org/lamsfoundation/lams/common/util/CustomContextMenu.as =================================================================== diff -u -r5ffdfb896de13994030991c7634bb54a7c862404 -rf8f41dead761de750c4b69041e2d3ee5d7605df2 --- lams_flash/src/common/flash/org/lamsfoundation/lams/common/util/CustomContextMenu.as (.../CustomContextMenu.as) (revision 5ffdfb896de13994030991c7634bb54a7c862404) +++ lams_flash/src/common/flash/org/lamsfoundation/lams/common/util/CustomContextMenu.as (.../CustomContextMenu.as) (revision f8f41dead761de750c4b69041e2d3ee5d7605df2) @@ -21,6 +21,7 @@ * ************************************************************************ */ +import org.lamsfoundation.lams.authoring.Activity; import org.lamsfoundation.lams.common.ApplicationParent; import org.lamsfoundation.lams.common.util.* import org.lamsfoundation.lams.common.dict.* @@ -43,17 +44,19 @@ private var dispatchEvent:Function; public var addEventListener:Function; public var removeEventListener:Function; + //Constructor - - public function CustomContextMenu (){ + public function CustomContextMenu() { //To hide builtin menu for root rootMenu = new ContextMenu(); - - rootMenu.hideBuiltInItems(); + rootMenu.hideBuiltInItems(); + app = ApplicationParent.getInstance(); + _root.menu = rootMenu; + authorMenu = new ContextMenu(); authorMenu.hideBuiltInItems(); //To show hide menu for activities @@ -68,7 +71,8 @@ public static function getInstance():CustomContextMenu{ if(CustomContextMenu._instance == null){ CustomContextMenu._instance = new CustomContextMenu(); - } + } + return CustomContextMenu._instance; } @@ -78,31 +82,41 @@ */ public function loadMenu(cmType:String, moduleType:String):Array { - trace("Value for this: "+this) var v:Boolean; var monitorC:Boolean; - var authorC:Boolean; + var authorC:Boolean; + + var monitorCB:Boolean; + var myCopy:Array = new Array(); - var menuArr:Array = new Array(); + var menuArr:Array = new Array(); + if (cmType == "activity"){ v = true; - }else { + } else { v = false; } + if (moduleType == "authoring"){ authorC = true; monitorC = false + + monitorCB = false; }else{ authorC = false; monitorC = true; + + monitorCB = (org.lamsfoundation.lams.monitoring.Application.getInstance().getMonitor().model.selectedItem.activity.activityTypeID == Activity.TOOL_BRANCHING_ACTIVITY_TYPE) ? true : false; } + menuArr[0] = [Dictionary.getValue('ccm_open_activitycontent'), getOpenEditActivityContent, false, v, authorC]; menuArr[1] = [Dictionary.getValue('ccm_copy_activity'), getCopy, false, v, authorC]; menuArr[2] = [Dictionary.getValue('ccm_monitor_activity'), MonitorActivityContent, false, v, monitorC]; - menuArr[3] = [Dictionary.getValue('ccm_monitor_activityhelp'),getMonitorHelp, false, v, monitorC]; - menuArr[4] = [Dictionary.getValue('ccm_paste_activity'),getPaste, false, v, authorC]; - menuArr[5] = [Dictionary.getValue('ccm_pi'),getPI, true, true, authorC]; - menuArr[6] = [Dictionary.getValue('ccm_author_activityhelp'),getHelp, false, v, authorC]; + menuArr[3] = [Dictionary.getValue('ccm_monitor_view_mappings'), viewToolOutputConditions, false, true, monitorCB]; + menuArr[4] = [Dictionary.getValue('ccm_monitor_activityhelp'),getMonitorHelp, false, v, monitorC]; + menuArr[5] = [Dictionary.getValue('ccm_paste_activity'),getPaste, false, v, authorC]; + menuArr[6] = [Dictionary.getValue('ccm_pi'),getPI, true, true, authorC]; + menuArr[7] = [Dictionary.getValue('ccm_author_activityhelp'),getHelp, false, v, authorC]; for (var i=0; i