WICKET-6541 override onConfigure instead of isVisible/isEnabled

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/401daa25
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/401daa25
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/401daa25

Branch: refs/heads/master
Commit: 401daa25183c93e2e8b99f8b4e3dbe4189a69dc1
Parents: 35822e3
Author: Sven Meier <svenme...@apache.org>
Authored: Fri Mar 2 13:58:49 2018 +0100
Committer: Sven Meier <svenme...@apache.org>
Committed: Tue Apr 10 22:00:54 2018 +0200

----------------------------------------------------------------------
 .../wicket/extensions/wizard/CancelButton.java  | 22 ++++-------
 .../wicket/extensions/wizard/FinishButton.java  | 13 ++++---
 .../wicket/extensions/wizard/IWizardModel.java  | 40 +++++++++++++++-----
 .../wicket/extensions/wizard/LastButton.java    | 21 ++++------
 .../wicket/extensions/wizard/NextButton.java    | 12 +++---
 .../extensions/wizard/PreviousButton.java       | 13 ++++---
 .../wicket/extensions/wizard/WizardButton.java  | 19 +++++++++-
 .../wizard/dynamic/IDynamicWizardStep.java      |  3 +-
 8 files changed, 84 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/401daa25/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/CancelButton.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/CancelButton.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/CancelButton.java
index 7830190..64386fc 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/CancelButton.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/CancelButton.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.extensions.wizard;
 
+import org.apache.wicket.model.ResourceModel;
+
 /**
  * Models a cancel button in the wizard. When pressed, it calls {@link 
Wizard#onCancel()} which
  * should do the real work.
@@ -36,26 +38,16 @@ public class CancelButton extends WizardButton
         */
        public CancelButton(final String id, final IWizard wizard)
        {
-               super(id, wizard, "org.apache.wicket.extensions.wizard.cancel");
+               super(id, wizard, new 
ResourceModel("org.apache.wicket.extensions.wizard.cancel"));
                setDefaultFormProcessing(false);
        }
 
-       /**
-        * @see org.apache.wicket.Component#isEnabled()
-        */
-       @Override
-       public final boolean isEnabled()
-       {
-               return true;
-       }
-
-       /**
-        * @see org.apache.wicket.Component#isVisible()
-        */
        @Override
-       public final boolean isVisible()
+       protected void onConfigure()
        {
-               return getWizardModel().isCancelVisible() && super.isVisible();
+               super.onConfigure();
+               
+               setVisible(getWizardModel().isCancelVisible());
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/401daa25/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/FinishButton.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/FinishButton.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/FinishButton.java
index 7cf29d1..4f403a3 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/FinishButton.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/FinishButton.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.extensions.wizard;
 
+import org.apache.wicket.model.ResourceModel;
+
 /**
  * Models a cancel button in the wizard. When pressed, it calls {@link 
IWizardStep#applyState()} on
  * the active wizard step, and then {@link Wizard#onFinish()} on the wizard.
@@ -36,16 +38,15 @@ public class FinishButton extends WizardButton
         */
        public FinishButton(final String id, final IWizard wizard)
        {
-               super(id, wizard, "org.apache.wicket.extensions.wizard.finish");
+               super(id, wizard, new 
ResourceModel("org.apache.wicket.extensions.wizard.finish"));
        }
 
-       /**
-        * @see org.apache.wicket.Component#isEnabled()
-        */
        @Override
-       public boolean isEnabled()
+       protected void onConfigure()
        {
-               return getWizardModel().isFinishAvailable() && 
super.isEnabled();
+               super.onConfigure();
+
+               setEnabled(getWizardModel().isFinishAvailable());
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/401daa25/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/IWizardModel.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/IWizardModel.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/IWizardModel.java
index ca0bb68..a66c1e8 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/IWizardModel.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/IWizardModel.java
@@ -83,14 +83,30 @@ public interface IWizardModel extends IClusterable
         * Gets whether the cancel button should be displayed.
         * 
         * @return True if the cancel button should be displayed
+        * 
+        * @see #cancel()
         */
        boolean isCancelVisible();
 
        /**
+        * Gets whether the last button should be displayed. This method should 
only return true if the
+        * {@link #isLastAvailable} will return true at any point. Returning 
false will prevent the last
+        * button from appearing on the wizard at all.
+        * 
+        * @return True if the last button should be displayed, False otherwise.
+
+        * @see #isLastAvailable()
+        * @see #last()
+        */
+       boolean isLastVisible();
+
+       /**
         * Checks if the last button should be enabled.
         * 
         * @return <tt>true</tt> if the last button should be enabled, 
<tt>false</tt> otherwise.
-        * @see #isLastVisible
+        * 
+        * @see #isLastVisible()
+        * @see #last()
         */
        boolean isLastAvailable();
 
@@ -104,18 +120,11 @@ public interface IWizardModel extends IClusterable
        boolean isLastStep(IWizardStep step);
 
        /**
-        * Gets whether the last button should be displayed. This method should 
only return true if the
-        * {@link #isLastAvailable} will return true at any point. Returning 
false will prevent the last
-        * button from appearing on the wizard at all.
-        * 
-        * @return True if the last button should be displayed, False otherwise.
-        */
-       boolean isLastVisible();
-
-       /**
         * Gets whether the next button should be enabled.
         * 
         * @return True if the next button should be enabled, false otherwise.
+        * 
+        * @see #next()
         */
        boolean isNextAvailable();
 
@@ -123,6 +132,8 @@ public interface IWizardModel extends IClusterable
         * Gets whether the previous button should be enabled.
         * 
         * @return True if the previous button should be enabled, false 
otherwise.
+        * 
+        * @see #previous()
         */
        boolean isPreviousAvailable();
        
@@ -134,6 +145,8 @@ public interface IWizardModel extends IClusterable
         * @see #isLastStep(IWizardStep)
         * 
         * @return True if the finish button should be enabled, false otherwise.
+        * 
+        * @see #finish()
         */
        default boolean isFinishAvailable() {
                return isLastStep(getActiveStep());
@@ -144,6 +157,9 @@ public interface IWizardModel extends IClusterable
         * {@link #isLastAvailable} returns <tt>true</tt>. Implementors should 
notify
         * {@link IWizardModelListener listeners} through calling
         * {@link IWizardModelListener#onActiveStepChanged(IWizardStep)}.
+        * 
+        * @see #isLastVisible()
+        * @see #isLastAvailable()
         */
        void last();
 
@@ -152,6 +168,8 @@ public interface IWizardModel extends IClusterable
         * {@link #isNextAvailable} returns <tt>true</tt>. Implementors should 
notify
         * {@link IWizardModelListener listeners} through calling
         * {@link IWizardModelListener#onActiveStepChanged(IWizardStep)}.
+        * 
+        * @see #isNextAvailable()
         */
        void next();
 
@@ -160,6 +178,8 @@ public interface IWizardModel extends IClusterable
         * {@link #isPreviousAvailable} returns <tt>true</tt>. Implementors 
should notify
         * {@link IWizardModelListener listeners} through calling
         * {@link IWizardModelListener#onActiveStepChanged(IWizardStep)}.
+        * 
+        * @see #isPreviousAvailable()
         */
        void previous();
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/401daa25/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/LastButton.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/LastButton.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/LastButton.java
index 5fad4d4..fbda834 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/LastButton.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/LastButton.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.extensions.wizard;
 
+import org.apache.wicket.model.ResourceModel;
+
 /**
  * Models a 'last' button in the wizard. When pressed, it calls {@link 
IWizardStep#applyState()} on
  * the active wizard step, and then moves to the last step in the model with
@@ -37,25 +39,16 @@ public class LastButton extends WizardButton
         */
        public LastButton(final String id, final IWizard wizard)
        {
-               super(id, wizard, "org.apache.wicket.extensions.wizard.last");
+               super(id, wizard, new 
ResourceModel("org.apache.wicket.extensions.wizard.last"));
        }
 
-       /**
-        * @see org.apache.wicket.Component#isEnabled()
-        */
        @Override
-       public boolean isEnabled()
+       protected void onConfigure()
        {
-               return getWizardModel().isLastAvailable() && super.isEnabled();
-       }
+               super.onConfigure();
 
-       /**
-        * @see org.apache.wicket.Component#isVisible()
-        */
-       @Override
-       public boolean isVisible()
-       {
-               return getWizardModel().isLastVisible() && super.isVisible();
+               setVisible(getWizardModel().isLastVisible());
+               setEnabled(getWizardModel().isLastAvailable());
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/401daa25/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/NextButton.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/NextButton.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/NextButton.java
index 6237242..cdd2d69 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/NextButton.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/NextButton.java
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.extensions.wizard;
 
+import org.apache.wicket.model.ResourceModel;
 
 /**
  * Models a next button in the wizard. When pressed, it calls {@link 
IWizardStep#applyState()} on
@@ -36,16 +37,15 @@ public class NextButton extends WizardButton
         */
        public NextButton(final String id, final IWizard wizard)
        {
-               super(id, wizard, "org.apache.wicket.extensions.wizard.next");
+               super(id, wizard, new 
ResourceModel("org.apache.wicket.extensions.wizard.next"));
        }
 
-       /**
-        * @see org.apache.wicket.Component#isEnabled()
-        */
        @Override
-       public boolean isEnabled()
+       protected void onConfigure()
        {
-               return super.isEnabled() && getWizardModel().isNextAvailable();
+               super.onConfigure();
+
+               setEnabled(getWizardModel().isNextAvailable());
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/401daa25/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/PreviousButton.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/PreviousButton.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/PreviousButton.java
index cf801f2..69be43b 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/PreviousButton.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/PreviousButton.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.extensions.wizard;
 
+import org.apache.wicket.model.ResourceModel;
+
 /**
  * Models a previous button in the wizard. When pressed, it moves the wizard 
state to the previous
  * step of the model by calling {@link IWizardModel#previous() previous} on 
the wizard's model.
@@ -36,17 +38,16 @@ public class PreviousButton extends WizardButton
         */
        public PreviousButton(final String id, final IWizard wizard)
        {
-               super(id, wizard, 
"org.apache.wicket.extensions.wizard.previous");
+               super(id, wizard, new 
ResourceModel("org.apache.wicket.extensions.wizard.previous"));
                setDefaultFormProcessing(false);
        }
 
-       /**
-        * @see org.apache.wicket.Component#isEnabled()
-        */
        @Override
-       public boolean isEnabled()
+       protected void onConfigure()
        {
-               return getWizardModel().isPreviousAvailable() && 
super.isEnabled();
+               super.onConfigure();
+               
+               setEnabled(getWizardModel().isPreviousAvailable());
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/401daa25/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/WizardButton.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/WizardButton.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/WizardButton.java
index fe21518..61f2109 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/WizardButton.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/WizardButton.java
@@ -17,6 +17,7 @@
 package org.apache.wicket.extensions.wizard;
 
 import org.apache.wicket.markup.html.form.Button;
+import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
 
 /**
@@ -48,9 +49,25 @@ public abstract class WizardButton extends Button
         * @param labelResourceKey
         *            The resource key of the button's label
         */
+       @Deprecated
        public WizardButton(final String id, final IWizard wizard, final String 
labelResourceKey)
        {
-               super(id, new ResourceModel(labelResourceKey));
+               this(id, wizard, new ResourceModel(labelResourceKey));
+       }
+
+       /**
+        * Construct.
+        * 
+        * @param id
+        *            The component id
+        * @param wizard
+        *            The wizard
+        * @param labelResourceKey
+        *            The resource key of the button's label
+        */
+       public WizardButton(final String id, final IWizard wizard, final 
IModel<String> label)
+       {
+               super(id, label);
                this.wizard = wizard;
        }
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/401daa25/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/dynamic/IDynamicWizardStep.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/dynamic/IDynamicWizardStep.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/dynamic/IDynamicWizardStep.java
index fa6d3e8..94cacde 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/dynamic/IDynamicWizardStep.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/wizard/dynamic/IDynamicWizardStep.java
@@ -37,7 +37,8 @@ public interface IDynamicWizardStep extends IWizardStep
         * Checks if the last button should be enabled.
         * 
         * @return <tt>true</tt> if the last button should be enabled, 
<tt>false</tt> otherwise.
-        * @see IWizardModel#isLastVisible
+        * 
+        * @see IWizardModel#isLastAvailable()
         */
        boolean isLastAvailable();
 

Reply via email to