Index: lams_central/src/flash/org/lamsfoundation/lams/learner/Application.as =================================================================== diff -u -r6b9e451ea243c368a9174d268d6cf2fbc94b2f21 -r0b8748c32843265961b13e661015c0f2f84248ad --- lams_central/src/flash/org/lamsfoundation/lams/learner/Application.as (.../Application.as) (revision 6b9e451ea243c368a9174d268d6cf2fbc94b2f21) +++ lams_central/src/flash/org/lamsfoundation/lams/learner/Application.as (.../Application.as) (revision 0b8748c32843265961b13e661015c0f2f84248ad) @@ -25,6 +25,7 @@ import org.lamsfoundation.lams.common.util.*; // utilities import org.lamsfoundation.lams.common.ui.*; // ui import org.lamsfoundation.lams.common.*; +import org.lamsfoundation.lams.learner.Header; import org.lamsfoundation.lams.learner.ls.*; import org.lamsfoundation.lams.learner.lb.*; import mx.managers.* @@ -38,15 +39,18 @@ // private constants //private var _comms:Communication; private var _seqLib:Library; + private var _header_mc:MovieClip; //private var _appRoot_mc:MovieClip; //Application root clip - + private static var HEADER_X:Number = -1; + private static var HEADER_Y:Number = -13.5; private static var LIBRARY_X:Number = 0; - private static var LIBRARY_Y:Number = 0; + private static var LIBRARY_Y:Number = 40; private static var APP_ROOT_DEPTH:Number = 10; //depth of the application root + private static var HEADER_DEPTH:Number = 20; // UI Elements @@ -57,7 +61,9 @@ private var _UILoadCheckIntervalID:Number; //Interval ID for periodic check on UILoad status private var _UILoaded:Boolean; //UI Loading status private var _seqLibLoaded:Boolean; //Seq Library loaded flag - private var _seqLibEventDispatched:Boolean //Seq Library loaded flag + //private var _seqLibEventDispatched:Boolean //Seq Library loaded flag + private var _headerLoaded:Boolean; + //private var _headerEventDispatched:Boolean; //Application instance is stored as a static in the application class @@ -75,7 +81,9 @@ trace('Begin Application...'); _seqLibLoaded = false; - _seqLibEventDispatched = false; + //_seqLibEventDispatched = false; + _headerLoaded = false; + //_headerEventDispatched = false; } @@ -114,8 +122,12 @@ //Create the application root _appRoot_mc = _container_mc.createEmptyMovieClip('appRoot_mc',APP_ROOT_DEPTH); trace('_appRoot_mc: ' + _appRoot_mc); - var depth:Number = _appRoot_mc.getNextHighestDepth(); - _seqLib = new Library(_appRoot_mc,depth++,LIBRARY_X,LIBRARY_Y); + //var depth:Number = _appRoot_mc.getNextHighestDepth(); + + _header_mc = _container_mc.attachMovie('Header','_header_mc',HEADER_DEPTH, {_x:HEADER_X,_y:HEADER_Y}); + _header_mc.addEventListener('load',Proxy.create(this,UIElementLoaded)); + + _seqLib = new Library(_appRoot_mc,LIBRARY_X,LIBRARY_Y); _seqLib.addEventListener('load',Proxy.create(this,UIElementLoaded)); //_seqLib.addEventListener('init', Proxy.create(this,reload)); } @@ -133,10 +145,10 @@ //If UI loaded check which events can be broadcast if(_UILoaded){ - if(_seqLibLoaded){ + //if(_seqLibLoaded && _headerLoaded){ clearInterval(_UILoadCheckIntervalID); start(); - } + //} if(_uiLoadCheckCount >= UI_LOAD_CHECK_TIMEOUT_COUNT){ //if we havent loaded the library by the timeout count then give up @@ -162,11 +174,15 @@ trace('Library loaded...'); _seqLibLoaded = true; break; + case 'Header' : + trace('Header loaded...'); + _headerLoaded = true; + break; default: } //If all of them are loaded set UILoad accordingly - if(_seqLibLoaded){ + if(_seqLibLoaded && _headerLoaded){ _UILoaded=true; } Index: lams_central/src/flash/org/lamsfoundation/lams/learner/Header.as =================================================================== diff -u --- lams_central/src/flash/org/lamsfoundation/lams/learner/Header.as (revision 0) +++ lams_central/src/flash/org/lamsfoundation/lams/learner/Header.as (revision 0b8748c32843265961b13e661015c0f2f84248ad) @@ -0,0 +1,110 @@ +/*************************************************************************** + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * ************************************************************************ + */ + +import mx.controls.* +import mx.utils.* +import mx.managers.* +import mx.events.* + +import org.lamsfoundation.lams.learner.*; +import org.lamsfoundation.lams.common.Sequence; +import org.lamsfoundation.lams.common.util.* +import org.lamsfoundation.lams.common.dict.* + +class Header extends MovieClip { + private var _header_mc:MovieClip; + private var _container:MovieClip; // Holding Container + private var lams:MovieClip; // LAMS logo + private var resume_btn:Button; //Resume and Exit buttons + private var exit_btn:Button; + private var panel:MovieClip; //The underlaying panel base + + + //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; + + + /** + * constructor + */ + public function Header() { + //Set up this class to use the Flash event delegation model + EventDispatcher.initialize(this); + trace('[new Header]'); + //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 + */ + public function init(){ + trace('initialing header..'); + //Delete the enterframe dispatcher + delete this.onEnterFrame; + _header_mc = this; + + //Set the text for buttons + //resume_btn.label = Dictionary.getValue('learner_resume_btn'); + //exit_btn.label = Dictionary.getValue('learner_exit_btn'); + + //get focus manager + set focus to OK button, focus manager is available to all components through getFocusManager + + //fm = _container.getFocusManager(); + //fm.enabled = true; + + //Add event listeners for resume and exit buttons + //_header_mc.resume_btn.addEventListener("release", this); + //_header_mc.exit_btn.addEventListener("release",this); + + resume_btn.onRelease = function(){ + trace('on releasing resuming button..'); + var app:Application = Application.getInstance(); + var seq:Sequence; + if((seq = app.getLibrary().getSelectedSequence()) != null){ + app.getLibrary().joinSequence(seq); + } + } + + exit_btn.onRelease = function(){ + trace('on releasing exit button..'); + var app:Application = Application.getInstance(); + var seq:Sequence; + if((seq = app.getLibrary().getSelectedSequence()) != null){ + app.getLibrary().exitSequence(seq); + //if(!seq.isFinished()) { + // app.getLibrary().getActiveSequences(); + //} + } + } + + dispatchEvent({type:'load',target:this}); + + } + + function get className():String { + return 'Header'; + } +} \ No newline at end of file