Index: lams_central/src/flash/org/lamsfoundation/lams/monitoring/LearnersDialog.as =================================================================== diff -u -rbd0de52e204aa6211b0fcb2d553d246fc422f273 -rc1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787 --- lams_central/src/flash/org/lamsfoundation/lams/monitoring/LearnersDialog.as (.../LearnersDialog.as) (revision bd0de52e204aa6211b0fcb2d553d246fc422f273) +++ lams_central/src/flash/org/lamsfoundation/lams/monitoring/LearnersDialog.as (.../LearnersDialog.as) (revision c1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787) @@ -50,7 +50,7 @@ private var _container:MovieClip; //The container window that holds the dialog private var close_btn:Button; // Close window button - private var learners_txt:TextField; + private var learners_lbl:Label; private var panel:MovieClip; //The underlaying panel base private var learner_scp:MovieClip; // learners container @@ -100,7 +100,7 @@ setStyles(); //Set the text for buttons - close_btn.label = "Close"; + close_btn.label = Dictionary.getValue('ls_win_learners_close_btn'); //Set the labels @@ -135,7 +135,7 @@ _monitorController = _monitorView.getController(); _monitorModel = MonitorModel(_monitorView.getModel()); - learners_txt.text = "Learners in class: " + _monitorModel.getSequence().organisationName; + learners_lbl.text = Dictionary.getValue('ls_win_learners_heading_lbl') + " " + _monitorModel.getSequence().organisationName; //Add event listeners for ok, cancel and close buttons close_btn.addEventListener('onPress',Delegate.create(this, close)); @@ -152,13 +152,22 @@ //LFWindow, goes first to prevent being overwritten with inherited styles. var styleObj = themeManager.getStyleObject('LFWindow'); _container.setStyle('styleName',styleObj); + + //Apply panel style + styleObj = themeManager.getStyleObject('BGPanel'); + panel.setStyle('styleName', styleObj); + + //Apply scrollpane style + styleObj = themeManager.getStyleObject('scrollpane'); + learner_scp.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); //Apply label style - styleObj = themeManager.getStyleObject('label'); + styleObj = themeManager.getStyleObject('label'); + learners_lbl.setStyle('styleName', styleObj); } Index: lams_central/src/flash/org/lamsfoundation/lams/monitoring/LessonManagerDialog.as =================================================================== diff -u -r7ce9906165f8f8de5af295f7f75b4b042b176838 -rc1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787 --- lams_central/src/flash/org/lamsfoundation/lams/monitoring/LessonManagerDialog.as (.../LessonManagerDialog.as) (revision 7ce9906165f8f8de5af295f7f75b4b042b176838) +++ lams_central/src/flash/org/lamsfoundation/lams/monitoring/LessonManagerDialog.as (.../LessonManagerDialog.as) (revision c1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787) @@ -46,13 +46,20 @@ public var RT_ORG:String = "Organisation"; public static var USERS_X:Number = 10; public static var USER_OFFSET:Number = 20; + private static var USERS_LOAD_CHECK_INTERVAL:Number = 50; + private static var USERS_LOAD_CHECK_TIMEOUT_COUNT:Number = 200; //References to components + clips private var _container:MovieClip; //The container window that holds the dialog private var ok_btn:Button; //OK+Cancel buttons private var cancel_btn:Button; + // headings (labels) + private var organisation_lbl:Label; + private var staff_lbl:Label; + private var learners_lbl:Label; + private var panel:MovieClip; //The underlaying panel base private var treeview:Tree; //Treeview for navigation through workspace folder structure @@ -84,6 +91,11 @@ private var _resultDTO:Object; private var _selectedOrgId:Number; // selected organisation + private var _usersLoadCheckCount = 0; // instance counter for number of times we have checked to see if users are loaded + private var _UsersLoadCheckIntervalID:Number; //Interval ID for periodic check on UILoad status + private var _learnersLoaded:Boolean; //UI Loading status + private var _staffLoaded:Boolean; + //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; @@ -97,7 +109,8 @@ //Set up this class to use the Flash event delegation model EventDispatcher.initialize(this); _resultDTO = new Object(); - + _learnersLoaded = false; + _staffLoaded = false; //Create a clip that will wait a frame before dispatching init to give components time to setup MovieClipUtils.doLater(Proxy.create(this,init)); } @@ -108,19 +121,21 @@ private function init():Void{ trace('now initialising ...'); - //set the reference to the StyleManager - //themeManager = ThemeManager.getInstance(); + //set the reference to the StyleManager + themeManager = ThemeManager.getInstance(); + // Set the styles - //setStyles(); - + setStyles(); + setLabels(); //Set the text for buttons //ok_btn.label = Dictionary.getValue('lesson_dlg_ok'); //cancel_btn.label = Dictionary.getValue('lesson_dlg_cancel'); - ok_btn.label = "save"; - cancel_btn.label = "cancel"; + // disable on startup until learners/staff loaded + enableButtons(false); + //Set the labels //get focus manager + set focus to OK button, focus manager is available to all components through getFocusManager @@ -176,25 +191,7 @@ //itemSelected(treeview.selectedNode); } - - /** - * Called on initialisation - */ - 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'); - ok_btn.setStyle('styleName',styleObj); - cancel_btn.setStyle('styleName',styleObj); - - //Apply label style - styleObj = themeManager.getStyleObject('label'); - - } - /** * 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 @@ -413,6 +410,9 @@ _monitorModel.setOrganisation(new Organisation(treeview.selectedNode.attributes.data)); + // run polling method + checkUsersLoaded(); + var callback:Function = Proxy.create(this,loadStaff); _monitorModel.requestStaff(treeview.selectedNode.attributes.data, callback); @@ -423,6 +423,31 @@ } + /** + * Runs periodically and dispatches events as they are ready + */ + private function checkUsersLoaded() { + //If it's the first time through then set up the interval to keep polling this method + if(!_UsersLoadCheckIntervalID) { + _UsersLoadCheckIntervalID = setInterval(Proxy.create(this,checkUsersLoaded),USERS_LOAD_CHECK_INTERVAL); + } else { + _usersLoadCheckCount++; + //If all events dispatched clear interval and call start() + if(_learnersLoaded && _staffLoaded){ + //Debugger.log('Clearing Interval and calling start :',Debugger.CRITICAL,'checkUILoaded','Application'); + clearInterval(_UsersLoadCheckIntervalID); + enableButtons(true); + }else { + //Debugger.log('ALL UI LOADED, waiting for all true to dispatch init events: _dictionaryLoaded:'+_dictionaryLoaded+'_themeLoaded:'+_themeLoaded ,Debugger.GEN,'checkUILoaded','Application'); + if(_usersLoadCheckCount >= USERS_LOAD_CHECK_TIMEOUT_COUNT){ + //if we havent loaded the dict or theme by the timeout count then give up + Debugger.log('raeached time out waiting to load dict and themes, giving up.',Debugger.CRITICAL,'checkUILoaded','Application'); + clearInterval(_UsersLoadCheckIntervalID); + } + } + } + } + public function getOrganisations(courseID:Number, classID:Number):Void{ // TODO check if already set @@ -532,8 +557,10 @@ trace('loading: user ' + user.getFirstName() + ' ' + user.getLastName()); } + learner_scp.redraw(true); + var callback:Function = Proxy.create(_monitorModel,_monitorModel.saveLearners); Application.getInstance().getComms().getRequest('monitoring/monitoring.do?method=getLessonLearners&lessonID='+_monitorModel.getSequence().ID,callback, false); } @@ -548,7 +575,8 @@ } } - learner_scp.redraw(true); + learner_scp.redraw(true); + _learnersLoaded = true; } /** @@ -575,6 +603,7 @@ trace('loading: user ' + user.getFirstName() + ' ' + user.getLastName()); } + staff_scp.redraw(true); var callback:Function = Proxy.create(_monitorModel,_monitorModel.saveStaff); @@ -593,8 +622,55 @@ } staff_scp.redraw(true); + _staffLoaded = true; } + private function enableButtons(b:Boolean){ + ok_btn.enabled = b; + cancel_btn.enabled = b; + } + + /** + * Called on initialisation + */ + private function setStyles(){ + //LFWindow, goes first to prevent being overwritten with inherited styles. + var styleObj = themeManager.getStyleObject('LFWindow'); + _container.setStyle('styleName',styleObj); + + //Apply panel style + styleObj = themeManager.getStyleObject('BGPanel'); + panel.setStyle('styleName', styleObj); + + //Apply scrollpane style + styleObj = themeManager.getStyleObject('scrollpane'); + learner_scp.setStyle('styleName', styleObj); + staff_scp.setStyle('styleName', styleObj); + + //Apply tree style + styleObj = themeManager.getStyleObject('treeview'); + treeview.setStyle('styleName', styleObj); + + //Get the button style from the style manager and apply to both buttons + styleObj = themeManager.getStyleObject('button'); + ok_btn.setStyle('styleName',styleObj); + cancel_btn.setStyle('styleName',styleObj); + + //Apply label style + styleObj = themeManager.getStyleObject('label'); + organisation_lbl.setStyle('styleName', styleObj); + staff_lbl.setStyle('styleName', styleObj); + learners_lbl.setStyle('styleName', styleObj); + } + + private function setLabels(){ + ok_btn.label = Dictionary.getValue('ls_win_editclass_save_btn'); + cancel_btn.label = Dictionary.getValue('ls_win_editclass_cancel_btn'); + organisation_lbl.text = Dictionary.getValue('ls_win_editclass_organisation_lbl'); + staff_lbl.text = Dictionary.getValue('ls_win_editclass_staff_lbl'); + learners_lbl.text = Dictionary.getValue('ls_win_editclass_learners_lbl'); + } + /** * Main resize method, called by scrollpane container/parent */ Index: lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/MonitorView.as =================================================================== diff -u -r60604e99db3b67e629c8a20e7393c2ed957a87a3 -rc1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787 --- lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/MonitorView.as (.../MonitorView.as) (revision 60604e99db3b67e629c8a20e7393c2ed957a87a3) +++ lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/MonitorView.as (.../MonitorView.as) (revision c1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787) @@ -25,16 +25,15 @@ import org.lamsfoundation.lams.common.ui.* import org.lamsfoundation.lams.common.style.* import org.lamsfoundation.lams.monitoring.mv.* -import org.lamsfoundation.lams.monitoring.mv.tabviews.*; +import org.lamsfoundation.lams.monitoring.mv.tabviews.* import org.lamsfoundation.lams.monitoring.*; import org.lamsfoundation.lams.common.dict.* import org.lamsfoundation.lams.common.mvc.* import mx.managers.* -import mx.containers.*; +import mx.containers.* import mx.events.* import mx.utils.* -import mx.controls.*; -//import mx.controls.TabBar; +import mx.controls.* /** @@ -45,6 +44,7 @@ class org.lamsfoundation.lams.monitoring.mv.MonitorView extends AbstractView{ private var _className = "MonitorView"; + //constants: private var GRID_HEIGHT:Number; private var GRID_WIDTH:Number; @@ -61,7 +61,6 @@ private var monitorTabs_tb:MovieClip; private var learnerMenuBar:MovieClip; private var bkg_pnl:MovieClip; - //private var act_pnl:Panel; private var _gridLayer_mc:MovieClip; private var _lessonTabLayer_mc:MovieClip; @@ -77,6 +76,7 @@ private var _monitorView:MonitorView; //Tab Views Initialisers + //LessonTabView private var lessonTabView:LessonTabView; private var lessonTabView_mc:MovieClip; @@ -96,15 +96,18 @@ private var dispatchEvent:Function; public var addEventListener:Function; public var removeEventListener:Function; - //public var menu:ContextMenu; - + /** * Constructor */ function MonitorView(){ _monitorView = this; _tm = ThemeManager.getInstance(); + + //_dictionary = Dictionary.getInstance(); + //_dictionary.addEventListener('init',Proxy.create(this,setLabels)); + //Init for event delegation mx.events.EventDispatcher.initialize(this); } @@ -113,22 +116,14 @@ * Called to initialise Canvas . CAlled by the Canvas container */ public function init(m:Observable,c:Controller,x:Number,y:Number,w:Number,h:Number){ - //Invoke superconstructor, which sets up MVC relationships. - //if(c==undefined){ - // c==defaultController(); - //} + super (m, c); //Set up parameters for the grid H_GAP = 10; V_GAP = 10; MovieClipUtils.doLater(Proxy.create(this,draw)); - //setupTabInit(m, c); - //register to recive updates form the model - //MonitorModel(m).addEventListener('update',this); - - } private function tabLoaded(evt:Object){ @@ -142,11 +137,11 @@ } /** - * Recieved update events from the CanvasModel. Dispatches to relevent handler depending on update.Type - * @usage - * @param event - */ -public function update (o:Observable,infoObj:Object):Void{ + * Recieved update events from the CanvasModel. Dispatches to relevent handler depending on update.Type + * @usage + * @param event + */ + public function update (o:Observable,infoObj:Object):Void{ var mm:MonitorModel = MonitorModel(o); _monitorController = getController(); @@ -177,12 +172,8 @@ */ private function showData(mm:MonitorModel):Void{ var s:Object = mm.getSequence(); - //for (var i in s){ - trace("Item Description is : "+s._learningDesignID); - - //} - //monitor_scp.contentPath = lessonTabView; - + trace("Item Description is : "+s._learningDesignID); + } /** @@ -191,35 +182,28 @@ private function draw(){ var mcontroller = getController(); + //get the content path for the sp _monitor_mc = monitor_scp.content; - //Debugger.log('_canvas_mc'+_canvas_mc,Debugger.GEN,'draw','CanvasView'); trace("Height of learnerMenuBar: "+learnerMenuBar._height) - //Offset_Y_TabLayer_mc = learnerMenuBar._height - //_monitor_mc._y = Offset_Y_TabLayer_mc; _lessonTabLayer_mc = _monitor_mc.createEmptyMovieClip("_lessonTabLayer_mc", _monitor_mc.getNextHighestDepth()); _monitorTabLayer_mc = _monitor_mc.createEmptyMovieClip("_monitorTabLayer_mc", _monitor_mc.getNextHighestDepth()); _todoTabLayer_mc = _monitor_mc.createEmptyMovieClip("_todoTabLayer_mc", _monitor_mc.getNextHighestDepth()); _learnerTabLayer_mc = _monitor_mc.createEmptyMovieClip("_learnerTabLayer_mc", _monitor_mc.getNextHighestDepth()); - //trace('lesson tab view: ' + _tabsLayer_mc); - //bkg_pnl.useHandCursor = false; - - var tab_arr:Array = [{label:"Lesson", data:"lesson"}, {label:"Sequence", data:"monitor"}, {label:"Learners", data:"learners"}, {label:"Todo", data:"todo"}]; - monitorTabs_tb.setSize(400, 22) + + var tab_arr:Array = [{label:Dictionary.getValue('mtab_lesson'), data:"lesson"}, {label:Dictionary.getValue('mtab_seq'), data:"monitor"}, {label:Dictionary.getValue('mtab_learners'), data:"learners"}, {label:Dictionary.getValue('mtab_todo'), data:"todo"}]; + monitorTabs_tb.dataProvider = tab_arr; monitorTabs_tb.selectedIndex = 0; - //learnerMenuBar = this.attachMovie("RefreshBar", "RefreshBar", this.getNextHighestDepth(), {_x:-30}) - //learnerMenuBar = eval(learnerMenuBar) - - //learnerMenuBar.refresh_btn.addEventListener("click",mcontroller); refresh_btn.addEventListener("click",mcontroller); + help_btn.addEventListener("click",mcontroller); monitorTabs_tb.addEventListener("change",mcontroller); - - //setStyles(); + setLabels(); + setStyles(); setupTabInit() dispatchEvent({type:'load',target:this}); @@ -266,28 +250,36 @@ mm.addObserver(todoTabView); } - - /** - * Event listener for when when tab is clicked - * - * @usage - * @param evt - * @return + * Get the CSSStyleDeclaration objects for each component and apply them + * directly to the instance */ - //private function clickEvt(evt):Void{ - // trace(evt.target); - // trace("test: "+ String(evt.target.selectedIndex)) - //forClick.text="label is: " + evt.itemIndex.label + " index is: " + evt.index + " capital is: " + targetComp.dataProvider[evt.index].data; - //} + private function setStyles():Void{ + var styleObj = _tm.getStyleObject('CanvasPanel'); + bkg_pnl.setStyle('styleName',styleObj); + styleObj = _tm.getStyleObject('scrollpane'); + monitor_scp.setStyle('styleName',styleObj); + styleObj = _tm.getStyleObject('button'); + monitorTabs_tb.setStyle('styleName', styleObj); + refresh_btn.setStyle('styleName',styleObj); + help_btn.setStyle('styleName',styleObj); + + } + + private function setLabels():Void{ + refresh_btn.label = Dictionary.getValue('refresh_btn'); + help_btn.label = Dictionary.getValue('help_btn'); + } + /** * Sets the size of the canvas on stage, called from update */ private function setSize(mm:MonitorModel):Void{ var s:Object = mm.getSize(); trace("Monitor Tab Widtht: "+s.w+" Monitor Tab Height: "+s.h); - monitor_scp.setSize(s.w,s.h); + bkg_pnl.setSize(s.w,s.h); + monitor_scp.setSize(s.w-monitor_scp._x,s.h-monitor_scp._y); refresh_btn._x = s.w - 180 help_btn._x = s.w - 80 Index: lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LearnerTabView.as =================================================================== diff -u -r154e8c23af365fb667b39d9ce4da9172ab0ab25c -rc1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787 --- lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LearnerTabView.as (.../LearnerTabView.as) (revision 154e8c23af365fb667b39d9ce4da9172ab0ab25c) +++ lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LearnerTabView.as (.../LearnerTabView.as) (revision c1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787) @@ -197,7 +197,7 @@ */ private function draw(){ //activityArr = new Array; - //bkg_pnl = this.attachMovie("Panel", "bkg_pnl", this.getNextHighestDepth()); + bkg_pnl = this.attachMovie("Panel", "bkg_pnl", this.getNextHighestDepth()); //set up the Movie Clips to load relevant @@ -216,6 +216,9 @@ //learnerMenuBar.refresh_btn.onRelease = Proxy.create (this, reloadProgress); trace("Help layer path: "+ learnerMenuBar.refresh_btn.label) //setSize (mm) + + setStyles(); + dispatchEvent({type:'load',target:this}); } @@ -400,6 +403,15 @@ //mm.getMonitor().getMV().getMonitorScp().redraw(true); return s; } + + /** + * Get the CSSStyleDeclaration objects for each component and apply them + * directly to the instance + */ + private function setStyles():Void{ + var styleObj = _tm.getStyleObject('BGPanel'); + bkg_pnl.setStyle('styleName',styleObj); + } /** * Sets the size of the canvas on stage, called from update Index: lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LessonTabView.as =================================================================== diff -u -r5ac58197e0875a235ceafc460b5fc85d37f16341 -rc1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787 --- lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LessonTabView.as (.../LessonTabView.as) (revision 5ac58197e0875a235ceafc460b5fc85d37f16341) +++ lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LessonTabView.as (.../LessonTabView.as) (revision c1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787) @@ -51,8 +51,14 @@ public static var ACTIVE_CBI:Number = 1; public static var DISABLE_CBI:Number = 2; public static var ARCHIVE_CBI:Number = 3; - public static var UNARCHIVE_CBI:Number = 4; - private var _className = "LessonTabView"; + public static var UNARCHIVE_CBI:Number = 4; + + public static var STARTED_STATUS:Number = 3; + public static var SUSPENDED_STATUS:Number = 4; + public static var ARCHIVED_STATUS:Number = 6; + + private var _className = "LessonTabView"; + //constants: private var _tm:ThemeManager; private var mm:MonitorModel; @@ -64,7 +70,9 @@ private var _monitorReqTask_mc:MovieClip; private var reqTasks_scp:MovieClip; private var monitorTabs_tb:MovieClip; - private var _lessonStateArr:Array; + private var _lessonStateArr:Array; + private var bkg_pnl:MovieClip; + //Labels private var status_lbl:Label; private var learner_lbl:Label; @@ -83,9 +91,10 @@ private var numLearners_txt:TextField; private var class_txt:TextField; private var duration_txt:TextField; + private var startMsg_txt:TextField; + private var lessonManager:TextField; - private var taskManager:TextField; - private var startMsg_txt:TextField; + private var taskManager:TextField; //Button private var viewLearners_btn:Button; @@ -172,7 +181,7 @@ case 'RELOADPROGRESS' : if (infoObj.tabID == _tabID){ trace("called Reload progress") - //reloadProgress() + mm.getMonitor().reloadLessonToMonitor(); } break; case 'LM_DIALOG' : @@ -205,15 +214,17 @@ start_btn.addEventListener("click", _monitorController); statusApply_btn.addEventListener("click", Delegate.create(this, changeStatus)) this.addEventListener("apply", Delegate.create(_monitorController, _monitorController.changeStatus)); - + } /** * layout visual elements on the canvas on initialisation */ - private function draw(){ + private function draw(){ + listCount = 0; - this.onEnterFrame = setupLabels; + this.onEnterFrame = setupLabels; + //get the content path for the sp _monitorReqTask_mc = reqTasks_scp.content; _monitorController = getController(); @@ -228,28 +239,6 @@ populateLessonDetails(); enableEditClass(seq.state); - if(seq.state != Sequence.ACTIVE_STATE_ID){ - // hide start buttons etc - scheduleTime._visible = false; - scheduleDate_dt.visible = false; - start_btn.visible = false; - schedule_btn.visible = false; - manageDate_lbl.visible = false; - //manageStart_lbl.visible = false; - - /** - if(seq.isStarted()){ - startMsg_txt.text = "Currently Started." - } else { - startMsg_txt.text = "Scheduled to start at " - } - - startMsg_txt.visible = true; - */ - } - - //setStyles(); - var requestLessonID:Number = seq.ID; trace('seq id: ' + mm.getSequence().ID); @@ -263,6 +252,9 @@ }else{ mm.getMonitor().getContributeActivities(mm.getSequence().ID); } + + + setStyles(); dispatchEvent({type:'load',target:this}); } @@ -277,7 +269,7 @@ LSTitle_txt.text = s.name; LSDescription_txt.text = s.description; sessionStatus_txt.text = showStatus(s.state); - numLearners_txt.text = String(s.noStartedLearners) + " of "+String(s.noPossibleLearners); + numLearners_txt.text = String(s.noStartedLearners) + " " + Dictionary.getValue('ls_of_text')+" "+String(s.noPossibleLearners); class_txt.text = s.organisationName; } @@ -286,61 +278,84 @@ switch(stateID){ case Sequence.SUSPENDED_STATE_ID : - changeStatus_cmb.addItem("Select Status", LessonTabView.NULL_CBI); - changeStatus_cmb.addItem("Active", LessonTabView.ACTIVE_CBI); - changeStatus_cmb.addItem("Archive", LessonTabView.ARCHIVE_CBI); + changeStatus_cmb.addItem(Dictionary.getValue('ls_manage_status_cmb'), LessonTabView.NULL_CBI); + changeStatus_cmb.addItem(Dictionary.getValue('ls_status_cmb_enable'), LessonTabView.ACTIVE_CBI); + changeStatus_cmb.addItem(Dictionary.getValue('ls_status_cmb_archive'), LessonTabView.ARCHIVE_CBI); break; case Sequence.ARCHIVED_STATE_ID : - changeStatus_cmb.addItem("Select Status", LessonTabView.NULL_CBI); - changeStatus_cmb.addItem("Activate", LessonTabView.UNARCHIVE_CBI); + changeStatus_cmb.addItem(Dictionary.getValue('ls_manage_status_cmb'), LessonTabView.NULL_CBI); + changeStatus_cmb.addItem(Dictionary.getValue('ls_status_cmb_activate'), LessonTabView.UNARCHIVE_CBI); break; case Sequence.ACTIVE_STATE_ID : - changeStatus_cmb.addItem("Select Status", LessonTabView.NULL_CBI); - changeStatus_cmb.addItem("Archive", LessonTabView.ARCHIVE_CBI); + changeStatus_cmb.addItem(Dictionary.getValue('ls_manage_status_cmb'), LessonTabView.NULL_CBI); + changeStatus_cmb.addItem(Dictionary.getValue('ls_status_cmb_archive'), LessonTabView.ARCHIVE_CBI); break; case Sequence.NOTSTARTED_STATE_ID : - changeStatus_cmb.addItem("Select Status", LessonTabView.NULL_CBI); - changeStatus_cmb.addItem("Archive", LessonTabView.ARCHIVE_CBI); + changeStatus_cmb.addItem(Dictionary.getValue('ls_manage_status_cmb'), LessonTabView.NULL_CBI); + changeStatus_cmb.addItem(Dictionary.getValue('ls_status_cmb_archive'), LessonTabView.ARCHIVE_CBI); break; default : - changeStatus_cmb.addItem("Select Status", LessonTabView.NULL_CBI); - changeStatus_cmb.addItem("Disable", LessonTabView.DISABLE_CBI); - changeStatus_cmb.addItem("Archive", LessonTabView.ARCHIVE_CBI); + changeStatus_cmb.addItem(Dictionary.getValue('ls_manage_status_cmb'), LessonTabView.NULL_CBI); + changeStatus_cmb.addItem(Dictionary.getValue('ls_status_cmb_disable'), LessonTabView.DISABLE_CBI); + changeStatus_cmb.addItem(Dictionary.getValue('ls_status_cmb_archive'), LessonTabView.ARCHIVE_CBI); - } - } - + } + + } private function enableEditClass(stateID:Number):Void{ switch(stateID){ case Sequence.ACTIVE_STATE_ID : + showStartFields(true); editClass_btn.enabled = true; break; case Sequence.NOTSTARTED_STATE_ID : + showStartFields(true); editClass_btn.enabled = true; break; default : + showStartFields(false); editClass_btn.enabled = false; } } + + private function showStartFields(b:Boolean){ + scheduleTime._visible = b; + scheduleDate_dt.visible = b; + start_btn.visible = b; + schedule_btn.visible = b; + manageDate_lbl.visible = b; + + /** + if(seq.isStarted()){ + startMsg_txt.text = "Currently Started." + } else { + startMsg_txt.text = "Scheduled to start at " + } + + startMsg_txt.visible = true; + */ + } private function showStatus(seqStatus:Number):String{ var seqStat:String; - switch(String(seqStatus)){ - case '6' : - seqStat = "Archived" + + switch(seqStatus){ + case LessonTabView.ARCHIVED_STATUS : + seqStat = Dictionary.getValue('ls_status_archived_lbl'); break; - case '3' : - seqStat = "Started" + case LessonTabView.STARTED_STATUS : + seqStat = Dictionary.getValue('ls_status_started_lbl'); break; - case '4' : - seqStat = "Suspended" + case LessonTabView.SUSPENDED_STATUS : + seqStat = Dictionary.getValue('ls_status_disabled_lbl'); break; default: - seqStat = "Active" + seqStat = Dictionary.getValue('ls_status_active_lbl'); } - return seqStat + + return seqStat; } /** @@ -439,6 +454,7 @@ reqTasks_scp.redraw(true); requiredTaskList[listCount].contributeEntry.text = "\t\t"+mm.getMonitor().getCELiteral(o._contributionType); requiredTaskList[listCount].goContribute._x = reqTasks_scp._width-50 + requiredTaskList[listCount].goContribute.text = Dictionary.getValue('todo_goContribute_btn'); requiredTaskList[listCount].goContribute.onRelease = function (){ trace("Contrybute Type is: "+o.taskURL); getURL(String(o.taskURL), "_blank"); @@ -468,7 +484,7 @@ trace('doing Lesson Manager popup...'); trace('app root: ' + mm.getMonitor().root); trace('lfwindow: ' + LFWindow); - var dialog:MovieClip = PopUpManager.createPopUp(mm.getMonitor().root, LFWindow, true,{title:"Edit Class",closeButton:true,scrollContentPath:'selectClass'}); + var dialog:MovieClip = PopUpManager.createPopUp(mm.getMonitor().root, LFWindow, true,{title:Dictionary.getValue('ls_win_editclass_title'),closeButton:true,scrollContentPath:'selectClass'}); dialog.addEventListener('contentLoaded',Delegate.create(_monitorController,_monitorController.openDialogLoaded)); } @@ -480,7 +496,7 @@ trace('doing Learners popup...'); trace('app root: ' + mm.getMonitor().root); trace('lfwindow: ' + LFWindow); - var opendialog:MovieClip = PopUpManager.createPopUp(mm.getMonitor().root, LFWindow, true,{title:"View Learners",closeButton:true,scrollContentPath:'learnersDialog'}); + var opendialog:MovieClip = PopUpManager.createPopUp(mm.getMonitor().root, LFWindow, true,{title:Dictionary.getValue('ls_win_learners_title'),closeButton:true,scrollContentPath:'learnersDialog'}); opendialog.addEventListener('contentLoaded',Delegate.create(_monitorController,_monitorController.openDialogLoaded)); } @@ -508,43 +524,47 @@ //max_lbl.text = Dictionary.getValue('pi_max_act'); //populate the synch type combo: - status_lbl.text = "Status:" - learner_lbl.text = "Learners:" - class_lbl.text = "Class:" - elapsed_lbl.text = "Elapsed duration:" - manageClass_lbl.text = "Class:" - manageStatus_lbl.text = "Status:" - manageStart_lbl.text = "Start:" - manageDate_lbl.text = "Date" + status_lbl.text = Dictionary.getValue('ls_status_lbl'); + learner_lbl.text = Dictionary.getValue('ls_learners_lbl'); + class_lbl.text = Dictionary.getValue('ls_class_lbl'); + elapsed_lbl.text = Dictionary.getValue('ls_duration_lbl'); + manageClass_lbl.text = Dictionary.getValue('ls_manage_class_lbl'); + manageStatus_lbl.text = Dictionary.getValue('ls_manage_status_lbl'); + manageStart_lbl.text = Dictionary.getValue('ls_manage_start_lbl'); + manageDate_lbl.text = Dictionary.getValue('ls_manage_date_lbl'); //Button - viewLearners_btn.label = "View Learners" - editClass_btn.label = "Edit Class" - statusApply_btn.label = "Apply" - schedule_btn.label = "Schedule" - start_btn.label = "Start Now" + viewLearners_btn.label = Dictionary.getValue('ls_manage_learners_btn'); + editClass_btn.label = Dictionary.getValue('ls_manage_editclass_btn'); + statusApply_btn.label = Dictionary.getValue('ls_manage_apply_btn'); + schedule_btn.label = Dictionary.getValue('ls_manage_schedule_btn'); + start_btn.label = Dictionary.getValue('ls_manage_start_btn'); - _lessonStateArr = ["CREATED", "NOT_STARTED", "STARTED", "SUSPENDED", "FINISHED", "ARCHIVED", "DISABLED"]; + //_lessonStateArr = ["CREATED", "NOT_STARTED", "STARTED", "SUSPENDED", "FINISHED", "ARCHIVED", "DISABLED"]; taskManager.border = true taskManager.borderColor = 0x003366; + taskManager.text = Dictionary.getValue('ls_tasks_txt'); + lessonManager.border = true lessonManager.borderColor = 0x003366; + lessonManager.text = Dictionary.getValue('ls_manage_txt'); + taskManager.background = true taskManager.backgroundColor = 0xEAEAEA; lessonManager.background = true lessonManager.backgroundColor = 0xEAEAEA; - //Call to apply style to all the labels and input fields + delete this.onEnterFrame; + + //Call to apply style to all the labels and input fields setStyles(); } /** * Get the CSSStyleDeclaration objects for each component and apply them * directly to the instance - * @usage - * @return */ private function setStyles() { @@ -571,12 +591,18 @@ changeStatus_cmb.setStyle('styleName',styleObj); scheduleDate_dt.setStyle('styleName',styleObj); + //BG PANEL + styleObj = _tm.getStyleObject('BGPanel'); + bkg_pnl.setStyle('styleName',styleObj); + //STEPPER - styleObj = _tm.getStyleObject('numericstepper'); + //styleObj = _tm.getStyleObject('numericstepper'); //startHour_stp.setStyle('styleName',styleObj); //startMin_stp.setStyle('styleName',styleObj); //SCROLLPANE + styleObj = _tm.getStyleObject('scrollpane'); + reqTasks_scp.setStyle('styleName', styleObj); reqTasks_scp.border_mc.setStyle('_visible',false); } @@ -612,6 +638,7 @@ private function setSize(mm:MonitorModel):Void{ var s:Object = mm.getSize(); trace("Monitor Tab Widtht: "+s.w+" Monitor Tab Height: "+s.h); + bkg_pnl.setSize(s.w,s.h); lessonManager.setSize(s.w-20,lessonManager._height); taskManager.setSize(s.w-20,lessonManager._height); //qTasks_scp.setSize(s.w._width,reqTasks_scp._height); Index: lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/MonitorTabView.as =================================================================== diff -u -r154e8c23af365fb667b39d9ce4da9172ab0ab25c -rc1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787 --- lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/MonitorTabView.as (.../MonitorTabView.as) (revision 154e8c23af365fb667b39d9ce4da9172ab0ab25c) +++ lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/MonitorTabView.as (.../MonitorTabView.as) (revision c1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787) @@ -65,7 +65,7 @@ //private var _monitor_mc:MovieClip; private var learnerMenuBar:MovieClip; private var monitorTabs_tb:MovieClip; - private var _monitorTabViewContainer_mc:MovieClip + private var _monitorTabViewContainer_mc:MovieClip; private var bkg_pnl:MovieClip; private var _gridLayer_mc:MovieClip; private var _transitionLayer_mc:MovieClip; @@ -212,6 +212,9 @@ //learnerMenuBar.refresh_btn.onRelease = Proxy.create (this, reloadProgress); trace("Loaded MonitorTabView Data"+ this) //setSize (mm) + + setStyles(); + dispatchEvent({type:'load',target:this}); } @@ -342,7 +345,17 @@ return s; } + /** + * Get the CSSStyleDeclaration objects for each component and apply them + * directly to the instance + */ + private function setStyles():Void{ + var styleObj = _tm.getStyleObject('CanvasPanel'); + bkg_pnl.setStyle('styleName',styleObj); + } + + /** * Sets the size of the canvas on stage, called from update */ private function setSize(mm:MonitorModel):Void{ Index: lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/TodoTabView.as =================================================================== diff -u -r2fb3f710180cf191ee1c8c1cb413250b64c638aa -rc1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787 --- lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/TodoTabView.as (.../TodoTabView.as) (revision 2fb3f710180cf191ee1c8c1cb413250b64c638aa) +++ lams_central/src/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/TodoTabView.as (.../TodoTabView.as) (revision c1774bfa6a2989cf32fc39f5f0fe7f3e8bfc9787) @@ -53,6 +53,9 @@ private var listCount:Number = 0; private var todoTaskList:Array = new Array(); private var _monitorTodoTask_mc:MovieClip; + + // Background + private var bkg_pnl:MovieClip; //Text Items private var genralInfo_txt:TextField; @@ -145,18 +148,20 @@ }else{ mm.getMonitor().getContributeActivities(mm.getSequence().getSequenceID()); } + + setStyles(); dispatchEvent({type:'load',target:this}); } /** * Populate the lesson details from HashTable Sequence in MOnitorModel */ - private function populateLessonDetails():Void{ - //var mm:Observable = getModel(); + private function populateLessonDetails():Void{ + var s:Object = mm.getSequence(); - var desc:String = "Advanced Controls: Use of this Todo Tab is not required to complete the sequence. See the help page for more information.

This feature is now fully functional." - genralInfo_txt.htmlText = desc + var desc:String = "" + Dictionary.getValue('td_desc_heading') + "" + Dictionary.getValue('td_desc_text'); + genralInfo_txt.htmlText = desc; } @@ -223,6 +228,7 @@ todoTaskList[listCount] = _monitorTodoTask_mc.attachMovie("contributeActivityRow", "contributeActivityRow"+listCount, _monitorTodoTask_mc.getNextHighestDepth(), {_x:x, _y:YPOS+(19*listCount)}) todoTaskList[listCount].contributeActivity.background = true; todoTaskList[listCount].contributeActivity._width=_monitorTodoTask_mc._width-20 + if (ca._parentActivityID == null){ todoTaskList[listCount].contributeActivity.text = " "+ca.title todoTaskList[listCount].contributeActivity.backgroundColor = 0xD5E6FF; @@ -242,7 +248,8 @@ trace('write out entry with GO link'+o.taskURL); todoTaskList[listCount] =_monitorTodoTask_mc.attachMovie("contributeEntryRow", "contributeEntryRow"+listCount, this._monitorTodoTask_mc.getNextHighestDepth(), {_x:x, _y:YPOS+(19*listCount)}) todoTaskList[listCount].contributeEntry.text = "\t\t"+mm.getMonitor().getCELiteral(o._contributionType); - todoTaskList[listCount].goContribute._x = this._width-50 + todoTaskList[listCount].goContribute._x = this._width-50; + todoTaskList[listCount].goContribute.text = Dictionary.getValue('todo_goContribute_btn'); todoTaskList[listCount].goContribute.onRelease = function (){ trace("Contrybute Type is: "+o.taskURL); getURL(String(o.taskURL), "_blank"); @@ -261,12 +268,22 @@ } } } + + /** + * Get the CSSStyleDeclaration objects for each component and apply them + * directly to the instance + */ + private function setStyles():Void{ + var styleObj = _tm.getStyleObject('BGPanel'); + bkg_pnl.setStyle('styleName',styleObj); + } /** * Sets the size of the canvas on stage, called from update */ private function setSize(mm:MonitorModel):Void{ - var s:Object = mm.getSize(); + var s:Object = mm.getSize(); + bkg_pnl.setSize(s.w,s.h); genralInfo_txt._width = s.w-20 for (var i=0; i