Index: lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as =================================================================== diff -u -rb36ef3734078122dfb9c647344efeda3cf72c85b -r1611a9e23545c59b59a2c8c63ab7a838dc46eed6 --- lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as (.../Monitor.as) (revision b36ef3734078122dfb9c647344efeda3cf72c85b) +++ lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/Monitor.as (.../Monitor.as) (revision 1611a9e23545c59b59a2c8c63ab7a838dc46eed6) @@ -1,4 +1,4 @@ -/*************************************************************************** +/*************************************************************************** * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) * ============================================================= * License Information: http://lamsfoundation.org/licensing/lams/2.0/ @@ -20,109 +20,93 @@ * http://www.gnu.org/licenses/gpl.txt * ************************************************************************ */ - -//import org.lamsfoundation.lams.authoring.cv.* -import org.lamsfoundation.lams.monitoring.mv.* -import org.lamsfoundation.lams.authoring.tk.* -import org.lamsfoundation.lams.common.util.* -import org.lamsfoundation.lams.monitoring.* +import org.lamsfoundation.lams.monitoring.Application; +import org.lamsfoundation.lams.monitoring.mv.*; import org.lamsfoundation.lams.common.ui.* import org.lamsfoundation.lams.common.dict.* import org.lamsfoundation.lams.common.* -import mx.managers.* + import mx.utils.* +import mx.managers.*; +import mx.events.*; -/** - * The canvas is the main screen area of the LAMS application where activies are added and sequenced - * Note - This holds the DesignDataModel _ddm - * @version 1.0 - * @since - */ -class org.lamsfoundation.lams.monitoring.mv.Monitor { - +class Monitor { //Constants public static var USE_PROPERTY_INSPECTOR = true; + + + private var _className:String = "Monitor"; + // Model private var monitorModel:MonitorModel; // View private var monitorView:MonitorView; private var monitorView_mc:MovieClip; - - private var _className:String = "Monitor"; - + private var app:Application; private var _dictionary:Dictionary; + + private var _pi:MovieClip; //Property inspector - - private var _pi:MovieClip; //Property inspector - - //Defined so compiler can 'see' events added at runtime by EventDispatcher private var dispatchEvent:Function; public var addEventListener:Function; public var removeEventListener:Function; - /** - * Canvas Constructor - * - * @param target_mc Target clip for attaching view - */ - public function Monitor (target_mc:MovieClip,depth:Number,x:Number,y:Number,w:Number,h:Number){ - mx.events.EventDispatcher.initialize(this); - - //Design Data Model. - _ddm = new DesignDataModel(); + * Monitor Constructor Function + * + * @usage + * @return target_mc //Target clip for attaching view + */ + public function Monitor(target_mc:MovieClip, x:Number, y:Number,w:Number,h:Number){ + EventDispatcher.initialize(this); - //Create the model. - //pass in a ref to this container + //Create the model monitorModel = new MonitorModel(this); _dictionary = Dictionary.getInstance(); - - //Create the view - _monitorView_mc = target_mc.createChildAtDepth("monitorView",DepthManager.kTop); - //Cast monitor view clip as MonitorView and initialise passing in model - monitorView = MonitorView(_monitorView_mc); - moniotrView.init(monitorModel,undefined,x,y,w,h); - - - //Get reference to application and design data model - app = Application.getInstance(); + //Create the view + monitorView_mc = target_mc.createChildAtDepth("monitorView",DepthManager.kTop); + trace(monitorView_mc); - _undoStack = new Array(); - _redoStack = new Array(); + monitorView = MonitorView(monitorView_mc); + monitorView.init(monitorModel,undefined,x,y,w,h); + + monitorView_mc.addEventListener('load',Proxy.create(this,viewLoaded)); + _dictionary.addEventListener('init',Proxy.create(this,setupPI)); - //some initialisation: - - - //Add listener to view so that we know when it's loaded - monitorView.addEventListener('load',Proxy.create(this,viewLoaded)); - - //_ddm.addEventListener('ddmUpdate',Proxy.create(this,onDDMUpdated)); - //_ddm.addEventListener('ddmBeforeUpdate',Proxy.create(this,onDDMBeforeUpdate)); - - - - //Register view with model to receive update events + //Register view with model to receive update events monitorModel.addObserver(monitorView); - //Set the position by setting the model which will call update on the view monitorModel.setPosition(x,y); - //Initialise size to the designed size - monitorModel.setSize(w,h); + monitorModel.setSize(w,h); + + //Get reference to application and design data model + app = Application.getInstance(); - //muist comne after the canvasView as we use the defaultController method to get a controller ref. - _dictionary.addEventListener('init',Proxy.create(this,setupPI)); - - - //if in monitor, dont do it! - //initBin(); } + /** + * event broadcast when Monitor is loaded + */ + public function broadcastInit(){ + dispatchEvent({type:'init',target:this}); + } + + private function viewLoaded(evt:Object){ + Debugger.log('viewLoaded called',Debugger.GEN,'viewLoaded','Monitor'); + + if(evt.type=='load') { + dispatchEvent({type:'load',target:this}); + }else { + //Raise error for unrecognized event + } + } + /** * Event dispatcher to setup Property inspector once dictionary items are loaded. * @@ -134,30 +118,17 @@ initPropertyInspector(); } } - - + /** - * Event dispatched from the view once it's loaded - */ - public function viewLoaded(evt:Object) { - - if(evt.type=='load') { - dispatchEvent({type:'load',target:this}); - }else { - Debugger.log('Event type not recognised : ' + evt.type,Debugger.CRITICAL,'viewLoaded','Monitor'); - } - } - - /** * Initialises the property inspector * @usage */ public function initPropertyInspector():Void{ //note the init obnject parameters are passed into the _container object in the embeded class (*in this case PropertyInspector) //we are setting up a view so we need to pass the model and controller to it - var cc:CanvasController = canvasView.getController(); - _pi = PopUpManager.createPopUp(Application.root, LFWindow, false,{title:Dictionary.getValue('property_inspector_title'),closeButton:true,scrollContentPath:"PropertyInspector",_canvasModel:canvasModel,_canvasController:cc}); + var mm:MonitorController = monitorView.getController(); + _pi = PopUpManager.createPopUp(Application.root, LFWindow, false,{title:Dictionary.getValue('property_inspector_title'),closeButton:true,scrollContentPath:"PropertyInspector",_monitorModel:monitorModel,_monitorController:mm}); //Assign dialog load handler _pi.addEventListener('contentLoaded',Delegate.create(this,piLoaded)); @@ -182,4 +153,40 @@ } } + + /** + * Used by application to set the size + * @param width The desired width + * @param height the desired height + */ + public function setSize(width:Number, height:Number):Void{ + monitorModel.setSize(width, height); + } + + public function setPosition(x:Number,y:Number){ + //Set the position within limits + //TODO DI 24/05/05 write validation on limits + monitorModel.setPosition(x,y); + } + + //Dimension accessor methods + public function get width():Number{ + return monitorModel.width; + } + + public function get height():Number{ + return monitorModel.height; + } + + public function get x():Number{ + return monitorModel.x; + } + + public function get y():Number{ + return monitorModel.y; + } + + function get className():String { + return _className; + } } \ No newline at end of file