Index: lams_central/src/flash/org/lamsfoundation/lams/wizard/WizardView.as =================================================================== diff -u -r1e087680b18924d9a721d3dfb17e673c4aae1ce3 -r445ba3d95947f66a06f15ca5720c29da770126ce --- lams_central/src/flash/org/lamsfoundation/lams/wizard/WizardView.as (.../WizardView.as) (revision 1e087680b18924d9a721d3dfb17e673c4aae1ce3) +++ lams_central/src/flash/org/lamsfoundation/lams/wizard/WizardView.as (.../WizardView.as) (revision 445ba3d95947f66a06f15ca5720c29da770126ce) @@ -59,15 +59,15 @@ private var _wizardView:WizardView; private var _tm:ThemeManager; + private var _dictionary:Dictionary; //private var _workspace:Workspace; private var _wizardView_mc:MovieClip; - //private var bkg_pnl:MovieClip; + private var logo:MovieClip; private var org_treeview:Tree; //Treeview for navigation through workspace folder structure // step 1 UI elements - private var currentPath_lbl:Label; private var location_treeview:Tree; // step 2 UI elements @@ -97,17 +97,21 @@ private var scheduleDate_dt:DateField; //Dimensions for resizing - private var xOkOffset:Number; - private var yOkOffset:Number; + private var xNextOffset:Number; + private var yNextOffset:Number; + private var xPrevOffset:Number; + private var yPrevOffset:Number; private var xCancelOffset:Number; private var yCancelOffset:Number; + private var xLogoOffset:Number; + private var lastStageHeight:Number; private var header_pnl:MovieClip; // top panel base - private var footer_pnl:MovieClip; // bottom panel base private var panel:MovieClip; //The underlaying panel base - // common buttons + // common elements + private var wizTitle_lbl:Label; private var finish_btn:Button; private var cancel_btn:Button; private var next_btn:Button; @@ -134,11 +138,13 @@ */ function WizardView(){ _wizardView = this; + mx.events.EventDispatcher.initialize(this); + _tm = ThemeManager.getInstance(); + _dictionary = Dictionary.getInstance(); + _dictionary.addEventListener('init',Proxy.create(this,setUpLabels)); + _resultDTO = new Object(); - //_workspace = Application.getInstance().getWorkspace(); - //Init for event delegation - mx.events.EventDispatcher.initialize(this); } /** @@ -147,11 +153,16 @@ public function init(m:Observable,c:Controller){ super (m, c); - currentPath_lbl.text = ""+Dictionary.getValue('ws_dlg_location_button')+":" + xNextOffset = panel._width - next_btn._x; + yNextOffset = panel._height - next_btn._y; + xPrevOffset = panel._width - prev_btn._x; + yPrevOffset = panel._height - prev_btn._y; + xCancelOffset = panel._width - cancel_btn._x; + yCancelOffset = panel._height - cancel_btn._y; + xLogoOffset = header_pnl._width - logo._x; - // event listeners - - trace('org tree:' + org_treeview); + lastStageHeight = Stage.height; + MovieClipUtils.doLater(Proxy.create(this,draw)); } @@ -232,16 +243,14 @@ * layout visual elements on the canvas on initialisation */ private function draw(){ - + setStyles(); showStep1(); dispatchEvent({type:'load',target:this}); } /** - * Called by the wizardController after the workspace has loaded - * @usage - * @return + * Called by the wizardController after the workspace has loaded */ public function setUpContent():Void{ trace('setting up content'); @@ -263,6 +272,87 @@ } + /** + * Sets i8n labels for UI elements + * + */ + public function setUpLabels():Void{ + //buttons + next_btn.label = Dictionary.getValue('next_btn'); + prev_btn.label = Dictionary.getValue('prev_btn'); + cancel_btn.label = Dictionary.getValue('cancel_btn'); + finish_btn.label = Dictionary.getValue('finish_btn'); + close_btn.label = Dictionary.getValue('close_btn'); + start_btn.label = Dictionary.getValue('start_btn'); + + //labels + setTitle(Dictionary.getValue('wizardTitle_1_lbl')); + title_lbl.text = Dictionary.getValue('title_lbl'); + desc_lbl.text = Dictionary.getValue('desc_lbl'); + staff_lbl.text = Dictionary.getValue('staff_lbl'); + learner_lbl.text = Dictionary.getValue('learner_lbl'); + summery_lbl.text = Dictionary.getValue('summery_lbl'); + + schedule_cb.label = Dictionary.getValue('schedule_cb_lbl'); + + } + + /** + * Set the styles for the Wizard called from init. and themeChanged event handler + */ + private function setStyles() { + var styleObj = _tm.getStyleObject('button'); + next_btn.setStyle('styleName',styleObj); + prev_btn.setStyle('styleName',styleObj); + finish_btn.setStyle('styleName',styleObj); + cancel_btn.setStyle('styleName',styleObj); + close_btn.setStyle('styleName',styleObj); + start_btn.setStyle('styleName',styleObj); + + styleObj = _tm.getStyleObject('BGPanel'); + header_pnl.setStyle('styleName',styleObj); + + styleObj = _tm.getStyleObject('WZPanel'); + panel.setStyle('styleName',styleObj); + + styleObj = _tm.getStyleObject('label'); + wizTitle_lbl.setStyle('styleName',styleObj); + title_lbl.setStyle('styleName',styleObj); + desc_lbl.setStyle('styleName',styleObj); + staff_lbl.setStyle('styleName',styleObj); + learner_lbl.setStyle('styleName',styleObj); + summery_lbl.setStyle('styleName',styleObj); + staff_lbl.setStyle('styleName',styleObj); + schedule_cb.setStyle('styleName', styleObj); + + //styleObj = _tm.getStyleObject('treeview'); + //org_treeview.setStyle('styleName',styleObj); + //location_treeview.setStyle('styleName',styleObj); + + + styleObj = _tm.getStyleObject('textarea'); + resourceDesc_txa.setStyle('styleName',styleObj); + resourceTitle_txi.setStyle('styleName',styleObj); + + styleObj = _tm.getStyleObject('scrollpane'); + staff_scp.setStyle('styleName',styleObj); + learner_scp.setStyle('styleName',styleObj); + summery_scp.setStyle('styleName',styleObj); + } + + /** + * 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){ + if(event.type=='themeChanged') { + //Theme has changed so update objects to reflect new styles + setStyles(); + }else { + Debugger.log('themeChanged event broadcast with an object.type not equal to "themeChanged"',Debugger.CRITICAL,'themeChanged','org.lamsfoundation.lams.WorkspaceDialog'); + } + } + private function itemSelected(newSelectedNode:XMLNode, wm:WorkspaceModel){ //update the UI with the new info var nodeData = newSelectedNode.attributes.data; @@ -499,9 +589,6 @@ private function updateScreen(cl_step:Number, sh_step:Number){ switch(cl_step){ - case 0: - clearStartUp(); - break; case 1: clearStep1(); break; @@ -522,9 +609,6 @@ } switch(sh_step){ - case 0: - showStartUp(); - break; case 1: showStep1(); break; @@ -571,19 +655,12 @@ } - private function showStartUp():Void{ - trace('showing startup'); - } - - private function clearStartUp():Void{ - - } - private function showStep1():Void{ trace('showing step 1'); + setTitle(Dictionary.getValue('wizardTitle_1_lbl')); location_treeview.visible = true; - finish_btn.enabled = false; + finish_btn.visible = false; prev_btn.enabled = false; next_btn.enabled = true; close_btn.visible = false; @@ -623,6 +700,7 @@ // show folder selected warning trace('folder selected.. need to select LD'); + LFMessage.showMessageAlert(Dictionary.getValue('al_validation_msg1'), null, null); return false; } else if(snode.attributes.data.resourceType==wm.RT_LD){ // set result DTO - lesson selected @@ -634,12 +712,15 @@ } else { // show general warning trace('nothing selected!!!'); + LFMessage.showMessageAlert(Dictionary.getValue('al_validation_msg1'), null, null); return false; } } private function showStep2():Void{ trace('showing step 2'); + + setTitle(Dictionary.getValue('wizardTitle_2_lbl')); // enable prev button after Step 1 prev_btn.enabled = true; @@ -674,13 +755,17 @@ if(valid){ resultDTO.resourceTitle = resourceTitle_txi.text; resultDTO.resourceDescription = resourceDesc_txa.text; - } + } else { + LFMessage.showMessageAlert(Dictionary.getValue('al_validation_msg2'), null, null); + } return valid; } private function showStep3():Void{ trace('showing step 3'); + setTitle(Dictionary.getValue('wizardTitle_3_lbl')); + if(!resultDTO.selectedLearners && !resultDTO.selectedStaff){ WizardModel(getModel()).getWizard().getOrganisations(_root.courseID, _root.classID); } @@ -712,6 +797,7 @@ if(snode == null){ trace('no course/class selected'); + LFMessage.showMessageAlert(Dictionary.getValue('al_validation_msg3_1'), null, null); return false; } else { // add selected users to dto @@ -766,6 +852,8 @@ trace('selected org ID is: ' + selectedOrgID); + }else{ + LFMessage.showMessageAlert(Dictionary.getValue('al_validation_msg3_2'), null, null); } return valid; @@ -774,6 +862,9 @@ private function showStep4():Void{ + + setTitle(Dictionary.getValue('wizardTitle_4_lbl')); + writeSummery(); summery_lbl.visible = true; @@ -789,8 +880,8 @@ } schedule_time._visible = true; scheduleDate_dt.visible = true; - next_btn.enabled = false; - finish_btn.enabled = true; + next_btn.visible = false; + finish_btn.visible = true; } private function writeSummery():Void{ @@ -816,18 +907,20 @@ start_btn.visible = false; schedule_time._visible = false; scheduleDate_dt.visible = false; - next_btn.enabled = true; - finish_btn.enabled = false; + next_btn.visible = true; + finish_btn.visible= false; } private function validateStep4(wm:WizardModel):Boolean{ return true; } private function showFinish():Void{ - next_btn.enabled = false; - prev_btn.enabled = false; - cancel_btn.enabled = false; + + setTitle(Dictionary.getValue('wizardTitle_x_lbl')); + next_btn.visible = false; + prev_btn.visible = false; + cancel_btn.visible = false; finish_btn.visible = false; close_btn.visible = true; } @@ -988,10 +1081,36 @@ private function setSize(wm:WizardModel):Void{ var s:Object = wm.getSize(); - header_pnl.setSize(s.w, s.h-footer_pnl._height-panel._height); - panel.setSize(s.w, s.h-footer_pnl._height-header_pnl._height); - footer_pnl.setSize(s.w,s.h-panel._height-header_pnl._height); + header_pnl.setSize(s.w, header_pnl._height); + panel.setSize(s.w, s.h-header_pnl._height); + + // move buttons + next_btn.move(panel._width-xNextOffset,panel._height-yNextOffset); + prev_btn.move(panel._width-xPrevOffset,panel._height-yPrevOffset); + finish_btn.move(panel._width-xNextOffset,panel._height-yNextOffset); + close_btn.move(panel._width-xCancelOffset,panel._height-yCancelOffset); + cancel_btn.move(panel._width-xCancelOffset,panel._height-yCancelOffset); + // move logo + logo._x = header_pnl._width-xLogoOffset; + + // calculate height change + var dHeight:Number = Stage.height - lastStageHeight; + + trace('last stage height' + lastStageHeight); + + lastStageHeight = Stage.height; + trace('new height change: ' + dHeight); + + org_treeview.setSize(org_treeview.width, Number(org_treeview.height + dHeight)); + location_treeview.setSize(location_treeview.width, Number(location_treeview.height + dHeight)); + + resourceDesc_txa.setSize(resourceDesc_txa.width, Number(resourceDesc_txa.height + dHeight)); + + staff_scp.setSize(staff_scp._width, staff_scp._height + dHeight); + learner_scp.setSize(learner_scp._width, learner_scp._height + dHeight); + + } /** @@ -1025,6 +1144,10 @@ return _staffList; } + public function setTitle(title:String){ + wizTitle_lbl.text = "" + title + ""; + } + /** * Overrides method in abstract view to ensure cortect type of controller is returned * @usage @@ -1041,5 +1164,6 @@ public function defaultController (model:Observable):Controller { return new WizardController(model); } + } \ No newline at end of file