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

Reply via email to