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();