Index: lams_common/src/flash/org/lamsfoundation/lams/common/ApplicationParent.as =================================================================== diff -u -rb1630b7a289da46c54a9b6406302341a7d2d9612 -rdb383642acd52b1adb1186f050ae221ff4d1cc81 --- lams_common/src/flash/org/lamsfoundation/lams/common/ApplicationParent.as (.../ApplicationParent.as) (revision b1630b7a289da46c54a9b6406302341a7d2d9612) +++ lams_common/src/flash/org/lamsfoundation/lams/common/ApplicationParent.as (.../ApplicationParent.as) (revision db383642acd52b1adb1186f050ae221ff4d1cc81) @@ -22,6 +22,13 @@ */ import org.lamsfoundation.lams.common.* +import org.lamsfoundation.lams.common.util.* //Utils +import org.lamsfoundation.lams.common.dict.* //Dictionary +import org.lamsfoundation.lams.common.ui.* //User interface +import org.lamsfoundation.lams.common.style.* //Themes/Styles +import org.lamsfoundation.lams.common.comms.* //communications +import org.lamsfoundation.lams.authoring.* +import org.lamsfoundation.lams.learner.* class ApplicationParent { @@ -32,11 +39,109 @@ public static var C_GATE:String = "c_gate"; public static var C_GROUP:String = "c_group"; public static var C_DEFAULT:String = "default"; - + + + private var _comms:Communication; + private var _themeManager:ThemeManager; + private var _dictionary:Dictionary; + private var _config:Config; + + //Data flags + private var _dictionaryLoaded:Boolean; //Dictionary loaded flag + private var _dictionaryEventDispatched:Boolean //Event status flag + private var _themeLoaded:Boolean; //Theme loaded flag + private var _themeEventDispatched:Boolean //Dictionary loaded flag + + //Application instance is stored as a static in the application parent class + private static var _instance:ApplicationParent = null; + + private var _appRoot_mc:MovieClip; //Application root clip + + // constructor - - public function ApplicationParent() { + public function ApplicationParent(app:Application) { + _instance = app; + + _themeLoaded = false; + _themeEventDispatched = false; + _dictionaryLoaded = false; + _dictionaryEventDispatched = false; + + //Comms object - do this before any objects are created that require it for server communication + _comms = new Communication(); + + } + + /** + * Retrieves an instance of the Application singleton + */ + public static function getInstance():ApplicationParent{ + if(ApplicationParent._instance == null){ + ApplicationParent._instance = new ApplicationParent(); + } + return ApplicationParent._instance; + } + + /** + * Called when Dictionary loaded + * @param evt:Object the event object + */ + private function onDictionaryLoad(evt:Object){ + if(evt.type=='load'){ + _dictionaryLoaded = true; + Debugger.log('Dictionary loaded :',Debugger.CRITICAL,'onDictionaryLoad','Application'); + } else { + Debugger.log('event type not recognised :'+evt.type,Debugger.CRITICAL,'onDictionaryLoad','Application'); + } + } + + /** + * Called when the current selected theme has been loaded + * @param evt:Object the event object + */ + private function onThemeLoad(evt:Object) { + if(evt.type=='load'){ + _themeLoaded = true; + Debugger.log('!Theme loaded :',Debugger.CRITICAL,'onThemeLoad','Application'); + } else { + Debugger.log('event type not recognised :'+evt.type,Debugger.CRITICAL,'onThemeLoad','Application'); + } - } + } + + /** + * returns the the Comms instance + */ + public function getComms():Communication{ + return _comms; + } + + /** + * returns the the Dictionary instance + */ + public function getDictionary():Dictionary{ + return _dictionary; + } + + /** + * Returns the Application root, use as _root would be used + * + * @usage Import authoring package and then use as root e.g. + * + * import org.lamsfoundation.lams.authoring; + * Application.root.attachMovie('myLinkageId','myInstanceName',depth); + */ + static function get root():MovieClip { + //Return root if valid otherwise raise a big system error as app. will not work without it + if(_instance._appRoot_mc != undefined) { + return _instance._appRoot_mc; + } else { + //TODO DI 11/05/05 Raise error if _appRoot hasn't been created + + } + } + + + } \ No newline at end of file Index: lams_common/src/flash/org/lamsfoundation/lams/common/Config.as =================================================================== diff -u -r0f5396c339039e0c644c770e945e4758fe9c99f1 -rdb383642acd52b1adb1186f050ae221ff4d1cc81 --- lams_common/src/flash/org/lamsfoundation/lams/common/Config.as (.../Config.as) (revision 0f5396c339039e0c644c770e945e4758fe9c99f1) +++ lams_common/src/flash/org/lamsfoundation/lams/common/Config.as (.../Config.as) (revision db383642acd52b1adb1186f050ae221ff4d1cc81) @@ -92,7 +92,7 @@ //Get a ref to the cookie monster _cm = CookieMonster.getInstance(); - _comms = Application.getInstance().getComms(); + _comms = ApplicationParent.getInstance().getComms(); init(); } Index: lams_common/src/flash/org/lamsfoundation/lams/common/DebugDialog.as =================================================================== diff -u -rb190575be4c7e49e31313974d5d5873670d457a9 -rdb383642acd52b1adb1186f050ae221ff4d1cc81 --- lams_common/src/flash/org/lamsfoundation/lams/common/DebugDialog.as (.../DebugDialog.as) (revision b190575be4c7e49e31313974d5d5873670d457a9) +++ lams_common/src/flash/org/lamsfoundation/lams/common/DebugDialog.as (.../DebugDialog.as) (revision db383642acd52b1adb1186f050ae221ff4d1cc81) @@ -30,8 +30,7 @@ import org.lamsfoundation.lams.common.util.* import org.lamsfoundation.lams.common.dict.* import org.lamsfoundation.lams.common.style.* -import org.lamsfoundation.lams.common.* -import org.lamsfoundation.lams.authoring.* +import org.lamsfoundation.lams.common.* /* * Preferences Dialog window for editing user preferences @@ -236,7 +235,7 @@ var data = obj.toData(); } //Get comms and serialize object - var comms = Application.getInstance().getComms(); + var comms = ApplicationParent.getInstance().getComms(); var sx:String = comms.serializeObj(data); //Write out the serialized object messages_ta.html=false; @@ -313,7 +312,7 @@ private function loadHandler(){ //load some wddx and var url_str:String = input_ti.text; - var comms = Application.getInstance().getComms(); + var comms = ApplicationParent.getInstance().getComms(); comms.getRequest(url_str,testLoadXMLLoaded,true); } Index: lams_common/src/flash/org/lamsfoundation/lams/common/dict/Dictionary.as =================================================================== diff -u -rb190575be4c7e49e31313974d5d5873670d457a9 -rdb383642acd52b1adb1186f050ae221ff4d1cc81 --- lams_common/src/flash/org/lamsfoundation/lams/common/dict/Dictionary.as (.../Dictionary.as) (revision b190575be4c7e49e31313974d5d5873670d457a9) +++ lams_common/src/flash/org/lamsfoundation/lams/common/dict/Dictionary.as (.../Dictionary.as) (revision db383642acd52b1adb1186f050ae221ff4d1cc81) @@ -38,7 +38,7 @@ private var items:Hashtable; private var _currentLanguage:String; private var comms:Communication; - private var app:Application; + private var app:ApplicationParent; //Application instance is stored as a static in the application class private static var _instance:Dictionary = null; @@ -53,7 +53,7 @@ */ private function Dictionary() { //Get comms and application references - app = Application.getInstance(); + app = ApplicationParent.getInstance(); comms = app.getComms(); mx.events.EventDispatcher.initialize(this); items = new Hashtable(); Index: lams_common/src/flash/org/lamsfoundation/lams/common/style/ThemeManager.as =================================================================== diff -u -rb190575be4c7e49e31313974d5d5873670d457a9 -rdb383642acd52b1adb1186f050ae221ff4d1cc81 --- lams_common/src/flash/org/lamsfoundation/lams/common/style/ThemeManager.as (.../ThemeManager.as) (revision b190575be4c7e49e31313974d5d5873670d457a9) +++ lams_common/src/flash/org/lamsfoundation/lams/common/style/ThemeManager.as (.../ThemeManager.as) (revision db383642acd52b1adb1186f050ae221ff4d1cc81) @@ -24,7 +24,8 @@ import mx.events.* import mx.utils.* import mx.transitions.easing.* -import org.lamsfoundation.lams.common.Config +import org.lamsfoundation.lams.common.ApplicationParent; +import org.lamsfoundation.lams.common.Config; import org.lamsfoundation.lams.common.style.* import org.lamsfoundation.lams.common.util.* import org.lamsfoundation.lams.common.ui.* @@ -71,7 +72,7 @@ private var _currentThemeName:String; private var _theme:Theme; private var comms:Communication; - private var app:Application; + private var app:ApplicationParent; //Constructor @@ -82,7 +83,7 @@ EventDispatcher.initialize(this); //Get comms and application references - app = Application.getInstance(); + app = ApplicationParent.getInstance(); comms = app.getComms(); } @@ -98,11 +99,11 @@ if(CookieMonster.cookieExists('theme.'+theme)&&Config.USE_CACHE) { //Whilst waiting for theme to load from disk - show busy - Cursor.showCursor(Application.C_HOURGLASS); + Cursor.showCursor(ApplicationParent.C_HOURGLASS); openFromDisk(theme); // show default cursor - Cursor.showCursor(Application.C_DEFAULT); + Cursor.showCursor(ApplicationParent.C_DEFAULT); }else { //testing style creator Index: lams_common/src/flash/org/lamsfoundation/lams/common/ui/Dialog.as =================================================================== diff -u -rb190575be4c7e49e31313974d5d5873670d457a9 -rdb383642acd52b1adb1186f050ae221ff4d1cc81 --- lams_common/src/flash/org/lamsfoundation/lams/common/ui/Dialog.as (.../Dialog.as) (revision b190575be4c7e49e31313974d5d5873670d457a9) +++ lams_common/src/flash/org/lamsfoundation/lams/common/ui/Dialog.as (.../Dialog.as) (revision db383642acd52b1adb1186f050ae221ff4d1cc81) @@ -27,15 +27,16 @@ * * @author DI */ - +import org.lamsfoundation.lams.common.*; import org.lamsfoundation.lams.common.ui.* import org.lamsfoundation.lams.common.util.* import org.lamsfoundation.lams.common.dict.* import mx.containers.* import mx.managers.* import mx.events.* -import org.lamsfoundation.lams.authoring.* +//import org.lamsfoundation.lams.authoring.* + class org.lamsfoundation.lams.common.ui.Dialog { private static var _inputDialog:MovieClip; @@ -81,7 +82,7 @@ _inputCancelButtonLabel = cancelButtonLabel; _inputOkHandler = okHandler; _inputCancelHandler = cancelHandler; - _inputDialog = PopUpManager.createPopUp(Application.root, LFWindow, true,{title:Dictionary.getValue('ws_dlg_title'),closeButton:true,scrollContentPath:'InputDialog'}); + _inputDialog = PopUpManager.createPopUp(ApplicationParent.root, LFWindow, true,{title:Dictionary.getValue('ws_dlg_title'),closeButton:true,scrollContentPath:'InputDialog'}); //Assign dialog load handler _inputDialog.addEventListener('contentLoaded',Proxy.create(org.lamsfoundation.lams.common.ui.Dialog,inputDialogLoaded)); } Index: lams_common/src/flash/org/lamsfoundation/lams/common/ui/Panel.as =================================================================== diff -u -rb190575be4c7e49e31313974d5d5873670d457a9 -rdb383642acd52b1adb1186f050ae221ff4d1cc81 --- lams_common/src/flash/org/lamsfoundation/lams/common/ui/Panel.as (.../Panel.as) (revision b190575be4c7e49e31313974d5d5873670d457a9) +++ lams_common/src/flash/org/lamsfoundation/lams/common/ui/Panel.as (.../Panel.as) (revision db383642acd52b1adb1186f050ae221ff4d1cc81) @@ -19,7 +19,7 @@ * * http://www.gnu.org/licenses/gpl.txt * ************************************************************************ - */s + */ //import org.lamsfoundation.lams.common.util.Debugger import mx.core.UIComponent Index: lams_common/src/flash/org/lamsfoundation/lams/common/ws/Workspace.as =================================================================== diff -u -rb190575be4c7e49e31313974d5d5873670d457a9 -rdb383642acd52b1adb1186f050ae221ff4d1cc81 --- lams_common/src/flash/org/lamsfoundation/lams/common/ws/Workspace.as (.../Workspace.as) (revision b190575be4c7e49e31313974d5d5873670d457a9) +++ lams_common/src/flash/org/lamsfoundation/lams/common/ws/Workspace.as (.../Workspace.as) (revision db383642acd52b1adb1186f050ae221ff4d1cc81) @@ -22,7 +22,6 @@ */ import org.lamsfoundation.lams.common.ws.* -import org.lamsfoundation.lams.authoring.* import org.lamsfoundation.lams.common.util.* import org.lamsfoundation.lams.common.* import mx.utils.* @@ -75,7 +74,7 @@ private function requestUserWorkspace():Void{ var callback:Function = Proxy.create(this,recievedUserWorkspace); var uid:Number = Config.getInstance().userID; - Application.getInstance().getComms().getRequest('workspace.do?method=getWorkspace&userID='+uid,callback, false); + ApplicationParent.getInstance().getComms().getRequest('workspace.do?method=getWorkspace&userID='+uid,callback, false); } /** @@ -100,8 +99,8 @@ public function requestFolderContents(folderID:Number):Void{ var callback:Function = Proxy.create(this,recievedFolderContents); var uid:Number = Config.getInstance().userID; - Application.getInstance().getComms().getRequest('workspace.do?method=getFolderContents&folderID='+folderID+'&mode='+Config.getInstance().mode+'&userID='+uid,callback, false); - //Application.getInstance().getComms().getRequest('workspace.do?method=getFolderContentsExcludeHome&folderID='+folderID+'&mode='+Config.getInstance().mode+'&userID='+uid,callback, false); + ApplicationParent.getInstance().getComms().getRequest('workspace.do?method=getFolderContents&folderID='+folderID+'&mode='+Config.getInstance().mode+'&userID='+uid,callback, false); + //ApplicationParent.getInstance().getComms().getRequest('workspace.do?method=getFolderContentsExcludeHome&folderID='+folderID+'&mode='+Config.getInstance().mode+'&userID='+uid,callback, false); } @@ -130,7 +129,7 @@ Debugger.log(resourceID+',to folder '+targetFolderID+','+resourceType,Debugger.GEN,'copyResourceResponse','Workspace'); var callback:Function = Proxy.create(this,generalWorkspaceOperationResponseHandler); var uid:Number = Config.getInstance().userID; - Application.getInstance().getComms().getRequest('workspace.do?method=copyResource&resourceID='+resourceID+'&targetFolderID='+targetFolderID+'&resourceType='+resourceType+'&userID='+uid,callback, false); + ApplicationParent.getInstance().getComms().getRequest('workspace.do?method=copyResource&resourceID='+resourceID+'&targetFolderID='+targetFolderID+'&resourceType='+resourceType+'&userID='+uid,callback, false); //http://localhost:8080/lams/workspace.do?method=copyResource&resourceID=10&targetFolderID=6&resourceType=FOLDER&userID=4 } @@ -161,30 +160,30 @@ Debugger.log('resourceID:'+resourceID+', resourceType'+resourceType,Debugger.GEN,'copyResourceResponse','Workspace'); var callback:Function = Proxy.create(this,generalWorkspaceOperationResponseHandler); var uid:Number = Config.getInstance().userID; - Application.getInstance().getComms().getRequest('workspace.do?method=deleteResource&resourceID='+resourceID+'&resourceType='+resourceType+'&userID='+uid,callback, false); + ApplicationParent.getInstance().getComms().getRequest('workspace.do?method=deleteResource&resourceID='+resourceID+'&resourceType='+resourceType+'&userID='+uid,callback, false); } public function requestNewFolder(parentFolderID:Number,folderName:String){ Debugger.log('parentFolderID:'+parentFolderID+', folderName'+folderName,Debugger.GEN,'requestNewFolder','Workspace'); var callback:Function = Proxy.create(this,generalWorkspaceOperationResponseHandler); var uid:Number = Config.getInstance().userID; - Application.getInstance().getComms().getRequest('workspace.do?method=createFolderForFlash&parentFolderID='+parentFolderID+'&name='+folderName+'&userID='+uid,callback, false); + ApplicationParent.getInstance().getComms().getRequest('workspace.do?method=createFolderForFlash&parentFolderID='+parentFolderID+'&name='+folderName+'&userID='+uid,callback, false); } public function requestRenameResource(resourceID:Number,resourceType:Number,newName:String){ Debugger.log('resourceID:'+resourceID+', resourceType'+resourceType+', newName:'+newName,Debugger.GEN,'requestRenameResource','Workspace'); var callback:Function = Proxy.create(this,generalWorkspaceOperationResponseHandler); var uid:Number = Config.getInstance().userID; - Application.getInstance().getComms().getRequest('workspace.do?method=renameResource&resourceID='+resourceID+'&resourceType='+resourceType+'&name='+newName+'&userID='+uid,callback, false); + ApplicationParent.getInstance().getComms().getRequest('workspace.do?method=renameResource&resourceID='+resourceID+'&resourceType='+resourceType+'&name='+newName+'&userID='+uid,callback, false); } public function requestMoveResource(resourceID:Number, targetFolderID:Number, resourceType:String){ Debugger.log('resourceID:'+resourceID+', resourceType'+resourceType+', targetFolderID:'+targetFolderID,Debugger.GEN,'requestMoveResource','Workspace'); var callback:Function = Proxy.create(this,requestMoveResourceResponse); var uid:Number = Config.getInstance().userID; - Application.getInstance().getComms().getRequest('workspace.do?method=moveResource&resourceID='+resourceID+'&resourceType='+resourceType+'&targetFolderID='+targetFolderID+'&userID='+uid,callback, false); + ApplicationParent.getInstance().getComms().getRequest('workspace.do?method=moveResource&resourceID='+resourceID+'&resourceType='+resourceType+'&targetFolderID='+targetFolderID+'&userID='+uid,callback, false); } public function requestMoveResourceResponse(dto){ @@ -209,7 +208,7 @@ private function requestWorkspaceFolders():Void{ var callback:Function = Proxy.create(this,recievedWorkspaceFolders); var uid:Number = Config.getInstance().userID; - Application.getInstance().getComms().getRequest('workspace.do?method=getAccessibleWorkspaceFoldersNew&userID='+uid,callback, false); + ApplicationParent.getInstance().getComms().getRequest('workspace.do?method=getAccessibleWorkspaceFoldersNew&userID='+uid,callback, false); } @@ -228,7 +227,7 @@ public function requestAvailableLicenses(){ var callback:Function = Proxy.create(this,recievedAvailableLicenses); var uid:Number = Config.getInstance().userID; - Application.getInstance().getComms().getRequest('authoring/author.do?method=getAvailableLicenses',callback, false); + ApplicationParent.getInstance().getComms().getRequest('authoring/author.do?method=getAvailableLicenses',callback, false); } /** Index: lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceView.as =================================================================== diff -u -rb190575be4c7e49e31313974d5d5873670d457a9 -rdb383642acd52b1adb1186f050ae221ff4d1cc81 --- lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceView.as (.../WorkspaceView.as) (revision b190575be4c7e49e31313974d5d5873670d457a9) +++ lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceView.as (.../WorkspaceView.as) (revision db383642acd52b1adb1186f050ae221ff4d1cc81) @@ -26,7 +26,7 @@ import org.lamsfoundation.lams.common.mvc.* import org.lamsfoundation.lams.common.ui.* import org.lamsfoundation.lams.common.dict.* -import org.lamsfoundation.lams.authoring.* +import org.lamsfoundation.lams.common.* import mx.managers.* import mx.events.* import mx.utils.* @@ -87,9 +87,9 @@ var dialog:MovieClip; //Check to see whether this should be a centered or positioned dialog if(typeof(pos)=='string'){ - dialog = PopUpManager.createPopUp(Application.root, LFWindow, true,{title:Dictionary.getValue('ws_dlg_title'),closeButton:true,scrollContentPath:'workspaceDialog'}); + dialog = PopUpManager.createPopUp(ApplicationParent.root, LFWindow, true,{title:Dictionary.getValue('ws_dlg_title'),closeButton:true,scrollContentPath:'workspaceDialog'}); } else { - dialog = PopUpManager.createPopUp(Application.root, LFWindow, true,{title:Dictionary.getValue('ws_dlg_title'),closeButton:true,scrollContentPath:'workspaceDialog',_x:pos.x,_y:pos.y}); + dialog = PopUpManager.createPopUp(ApplicationParent.root, LFWindow, true,{title:Dictionary.getValue('ws_dlg_title'),closeButton:true,scrollContentPath:'workspaceDialog',_x:pos.x,_y:pos.y}); } Debugger.log('_workspaceController:'+_workspaceController,4,'createWorkspaceDialogOpen','WorkspaceView');