This is an automated email from the ASF dual-hosted git repository. carlosrovira pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/develop by this push: new 976cccd show/hide buttons in a wizard page 976cccd is described below commit 976cccdf48435075ac2c050dfd4014e9a07f4f67 Author: Carlos Rovira <carlosrov...@apache.org> AuthorDate: Sun Nov 25 02:35:39 2018 +0100 show/hide buttons in a wizard page --- .../src/main/royale/WizardPlayGround.mxml | 2 + .../main/royale/org/apache/royale/jewel/Wizard.as | 12 ++++-- .../royale/org/apache/royale/jewel/WizardPage.as | 47 +++++++++++++++++----- .../royale/jewel/beads/models/WizardModel.as | 46 +++++++++++++++++++++ .../apache/royale/jewel/beads/views/WizardView.as | 26 ++++++++++-- 5 files changed, 115 insertions(+), 18 deletions(-) diff --git a/examples/royale/JewelExample/src/main/royale/WizardPlayGround.mxml b/examples/royale/JewelExample/src/main/royale/WizardPlayGround.mxml index 3d33ebc..245b8e5 100644 --- a/examples/royale/JewelExample/src/main/royale/WizardPlayGround.mxml +++ b/examples/royale/JewelExample/src/main/royale/WizardPlayGround.mxml @@ -109,6 +109,8 @@ limitations under the License. <j:VerticalCenteredLayout gap="9"/> </j:beads> <html:H1 text="Page 4"/> + <j:CheckBox text="show next button?" selected="true" change="page4.showNextButton = event.target.selected"/> + <j:CheckBox text="show previous button?" selected="true" change="page4.showPreviousButton = event.target.selected"/> </j:Group> </j:WizardPage> diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Wizard.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Wizard.as index d3126b0..65a2179 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Wizard.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/Wizard.as @@ -170,11 +170,13 @@ package org.apache.royale.jewel */ override public function addElement(c:IChild, dispatchEvent:Boolean = true):void { + var page:WizardPage = c as WizardPage; + page.model = model; + var wizardView:WizardView = view as WizardView; - wizardView.contentArea.addElement(c, dispatchEvent); + wizardView.contentArea.addElement(page, dispatchEvent); wizardView.contentArea.dispatchEvent(new Event("layoutNeeded")); - var page:WizardPage = c as WizardPage; page.step.page = c as WizardPage; page.addWizardListeners(this); } @@ -186,11 +188,13 @@ package org.apache.royale.jewel */ override public function addElementAt(c:IChild, index:int, dispatchEvent:Boolean = true):void { + var page:WizardPage = c as WizardPage; + page.model = model; + var wizardView:WizardView = view as WizardView; - wizardView.contentArea.addElementAt(c, index, dispatchEvent); + wizardView.contentArea.addElementAt(page, index, dispatchEvent); wizardView.contentArea.dispatchEvent(new Event("layoutNeeded")); - var page:WizardPage = c as WizardPage; page.step.page = c as WizardPage; page.addWizardListeners(this); } diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/WizardPage.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/WizardPage.as index 2bec885..ac40c69 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/WizardPage.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/WizardPage.as @@ -21,6 +21,7 @@ package org.apache.royale.jewel import org.apache.royale.events.Event; import org.apache.royale.jewel.beads.models.WizardModel; import org.apache.royale.jewel.beads.models.WizardStep; + import org.apache.royale.jewel.beads.views.WizardView; /** * Dispatched When the wizard reach to this page @@ -68,16 +69,6 @@ package org.apache.royale.jewel */ public var initialized:Boolean; - /** - * @royalesuppresspublicvarwarning - */ - // public var previousButton:Button; - - /** - * @royalesuppresspublicvarwarning - */ - // public var nextButton:Button; - private var _step:WizardStep; /** * the step data of this page @@ -117,6 +108,8 @@ package org.apache.royale.jewel { wizard.addEventListener("goToPreviousStep", goToPreviousStepHandler); wizard.addEventListener("goToNextStep", goToNextStepHandler); + addEventListener("showPreviousButtonChange", WizardView(wizard.view).showPreviousButtonChangeHandler); + addEventListener("showNextButtonChange", WizardView(wizard.view).showNextButtonChangeHandler); } /** @@ -141,6 +134,8 @@ package org.apache.royale.jewel } if(model.currentStep.previousStep == step.name) { + model.showPreviousButton = showPreviousButton; + model.showNextButton = showNextButton; dispatchEvent(new Event("enterPage")); enterPage(); } @@ -167,6 +162,8 @@ package org.apache.royale.jewel } if(model.currentStep.nextStep == step.name) { + model.showPreviousButton = showPreviousButton; + model.showNextButton = showNextButton; dispatchEvent(new Event("enterPage")); enterPage(); } @@ -179,5 +176,35 @@ package org.apache.royale.jewel { // trace("enterPage", step.name); } + + private var _showPreviousButton:Boolean = true; + /** + * show/hide wizard navigator previous button in the wizard for this page + */ + public function get showPreviousButton():Boolean + { + return _showPreviousButton; + } + public function set showPreviousButton(value:Boolean):void + { + _showPreviousButton = value; + + dispatchEvent(new Event("showPreviousButtonChange")); + } + + private var _showNextButton:Boolean = true; + /** + * show/hide wizard navigator next button in the wizard for this page + */ + public function get showNextButton():Boolean + { + return _showNextButton; + } + public function set showNextButton(value:Boolean):void + { + _showNextButton = value; + + dispatchEvent(new Event("showNextButtonChange")); + } } } diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/WizardModel.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/WizardModel.as index 9edc43c..8864504 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/WizardModel.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/WizardModel.as @@ -132,5 +132,51 @@ package org.apache.royale.jewel.beads.models dispatchEvent(new Event('currentStepChange')); } } + + private var _showPreviousButton:Boolean = true; + /** + * show/hide wizard navigator previous button in the wizard + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9.4 + */ + [Bindable(event="showPreviousButtonChange")] + public function get showPreviousButton():Boolean + { + return _showPreviousButton; + } + public function set showPreviousButton(value:Boolean):void + { + if(value != _showPreviousButton) + { + _showPreviousButton=value; + dispatchEvent(new Event("showPreviousButtonChange")); + } + } + + private var _showNextButton:Boolean = true; + /** + * show/hide wizard navigator next button in the wizard + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9.4 + */ + [Bindable(event="showNextButtonChange")] + public function get showNextButton():Boolean + { + return _showNextButton; + } + public function set showNextButton(value:Boolean):void + { + if(value != _showNextButton) + { + _showNextButton=value; + dispatchEvent(new Event("showNextButtonChange")); + } + } } } diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/WizardView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/WizardView.as index 9898cf8..3b44b5b 100644 --- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/WizardView.as +++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/WizardView.as @@ -36,6 +36,7 @@ package org.apache.royale.jewel.beads.views import org.apache.royale.jewel.Label; import org.apache.royale.jewel.VGroup; import org.apache.royale.jewel.Wizard; + import org.apache.royale.jewel.WizardPage; import org.apache.royale.jewel.beads.models.WizardModel; import org.apache.royale.jewel.supportClasses.wizard.WizardLayoutProxy; @@ -172,9 +173,10 @@ package org.apache.royale.jewel.beads.views model = _strand.getBeadByType(WizardModel) as WizardModel; model.addEventListener("currentStepChange", handleStepChange); + model.addEventListener("showPreviousButtonChange", handleStepChange); + model.addEventListener("showNextButtonChange", handleStepChange); - trace("wizard.model.text:" + wizard.model.text); - if (!_titleLabel) { + if (!_titleLabel) { _titleLabel = new Label(); (_titleLabel as Label).text = wizard.model.text; } @@ -281,13 +283,29 @@ package org.apache.royale.jewel.beads.views } /** + * + */ + public function showPreviousButtonChangeHandler(event:Event):void + { + model.showPreviousButton = (event.target as WizardPage).showPreviousButton; + } + + /** + * + */ + public function showNextButtonChangeHandler(event:Event):void + { + model.showNextButton = (event.target as WizardPage).showNextButton; + } + + /** * @private * @royaleignorecoercion org.apache.royale.jewel.beads.models.WizardModel */ protected function stepChangeAction():void { - previousButton.visible = (model.currentStep.previousStep != null); - nextButton.visible = (model.currentStep.nextStep != null); + previousButton.visible = model.showPreviousButton && model.currentStep.previousStep != null; + nextButton.visible = model.showNextButton && model.currentStep.nextStep != null; } protected function setupContentAreaLayout():void