On Tue, May 20, 2014 at 2:19 PM, <[email protected]> wrote:
> Repository: wicket
> Updated Branches:
> refs/heads/master 273127d8c -> 2cda29611
>
>
> WICKET-5594 AjaxButton #onSubmit() #onError() intricacies
>
> Make non-Ajax hooks final and prevent non-Ajax submit
>
> Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
> Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2cda2961
> Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2cda2961
> Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2cda2961
>
> Branch: refs/heads/master
> Commit: 2cda29611dcd78db1e6e2563034577fd86bd80a8
> Parents: 273127d
> Author: svenmeier <[email protected]>
> Authored: Tue May 20 13:19:03 2014 +0200
> Committer: svenmeier <[email protected]>
> Committed: Tue May 20 13:19:03 2014 +0200
>
> ----------------------------------------------------------------------
> .../ajax/markup/html/form/AjaxButton.java | 36 ++++++++++++++++++++
> .../ajax/markup/html/form/AjaxButtonTest.java | 2 ++
> 2 files changed, 38 insertions(+)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/2cda2961/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxButton.java
> ----------------------------------------------------------------------
> diff --git
> a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxButton.java
> b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxButton.java
> index eae85a6..88153c8 100644
> ---
> a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxButton.java
> +++
> b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxButton.java
> @@ -19,9 +19,12 @@ package org.apache.wicket.ajax.markup.html.form;
> import org.apache.wicket.ajax.AjaxRequestTarget;
> import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
> import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
> +import org.apache.wicket.markup.ComponentTag;
> import org.apache.wicket.markup.html.form.Button;
> import org.apache.wicket.markup.html.form.Form;
> import org.apache.wicket.model.IModel;
> +import org.slf4j.Logger;
> +import org.slf4j.LoggerFactory;
>
> /**
> * A button that submits the form via ajax.
> @@ -34,6 +37,8 @@ public abstract class AjaxButton extends Button
> {
> private static final long serialVersionUID = 1L;
>
> + private static final Logger logger =
> LoggerFactory.getLogger(AjaxButton.class);
> +
> private final Form<?> form;
>
> /**
> @@ -160,6 +165,37 @@ public abstract class AjaxButton extends Button
> }
> }
>
> + @Override
> + protected void onComponentTag(ComponentTag tag)
> + {
> + // WICKET-5594 prevent non-Ajax submit
> + tag.put("type", "button");
> +
> + super.onComponentTag(tag);
> + }
> +
> + /**
> + * This method is never called.
> + *
> + * @see #onSubmit(AjaxRequestTarget, Form)
> + */
> + @Override
> + public final void onSubmit()
> + {
> + logger.warn("unexpected invocation of #onSubmit()");
>
this would be more useful with '+ this' to print the component details (id,
path, etc.)
same for onError() below.
Use SLF4J's {} to call Component#toString() only when WARN is enabled
> + }
> +
> + /**
> + * This method is never called.
> + *
> + * @see #onError(AjaxRequestTarget, Form)
> + */
> + @Override
> + public final void onError()
> + {
> + logger.warn("unexpected invocation of #onError()");
> + }
> +
> /**
> * Listener method invoked on form submit with no errors, before
> {@link Form#onSubmit()}.
> *
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/2cda2961/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/form/AjaxButtonTest.java
> ----------------------------------------------------------------------
> diff --git
> a/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/form/AjaxButtonTest.java
> b/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/form/AjaxButtonTest.java
> index 09e8fa8..3a0f39f 100644
> ---
> a/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/form/AjaxButtonTest.java
> +++
> b/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/form/AjaxButtonTest.java
> @@ -34,6 +34,8 @@ public class AjaxButtonTest extends WicketTestCase
> tester.startPage(HomePage.class);
> // assert rendered page class
> tester.assertRenderedPage(HomePage.class);
> + // assert button type for AjaxButtons, WICKET-5594
> + assertEquals("button",
> tester.getTagById("submit2").getAttribute("type"));
> // assert rendered label component
> tester.assertLabel("message",
> "If you see this message wicket is properly
> configured and running");
>
>