You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2016/03/12 11:07:50 UTC
[4/4] wicket git commit: Add static factory methods to various
components which create instances by using Java 8 (Bi)Consumer got the
callbacks
Add static factory methods to various components which create instances by using Java 8 (Bi)Consumer got the callbacks
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/229fee82
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/229fee82
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/229fee82
Branch: refs/heads/static-factories-for-lambdas
Commit: 229fee82205383f08118f47708501de0d84bca71
Parents: 1d9bfd7
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Sat Mar 12 10:52:19 2016 +0100
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Sat Mar 12 10:52:19 2016 +0100
----------------------------------------------------------------------
.../ajax/markup/html/AjaxFallbackLink.java | 2 +
.../wicket/ajax/markup/html/AjaxLink.java | 16 +++++++
.../ajax/markup/html/form/AjaxButton.java | 38 ++++++++++++++++
.../ajax/markup/html/form/AjaxCheckBox.java | 16 +++++++
.../ajax/markup/html/form/AjaxSubmitLink.java | 39 +++++++++++++++++
.../apache/wicket/markup/html/link/Link.java | 16 +++++++
.../ajax/markup/html/IndicatingAjaxButton.java | 46 +++++++++++++++++---
.../ajax/markup/html/IndicatingAjaxLink.java | 17 ++++++++
8 files changed, 185 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/229fee82/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLink.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLink.java b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLink.java
index d4f95a3..29ccb99 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLink.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLink.java
@@ -24,6 +24,8 @@ import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.lambda.WicketConsumer;
+import org.apache.wicket.util.lang.Args;
/**
* An ajax link that will degrade to a normal request if ajax is not available or javascript is
http://git-wip-us.apache.org/repos/asf/wicket/blob/229fee82/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java
index c7e62e2..bf3d4d5 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java
@@ -23,6 +23,8 @@ import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.lambda.WicketConsumer;
+import org.apache.wicket.util.lang.Args;
/**
* A component that allows a trigger request to be triggered via html anchor tag
@@ -132,4 +134,18 @@ public abstract class AjaxLink<T> extends AbstractLink implements IAjaxLink, IGe
*/
@Override
public abstract void onClick(final AjaxRequestTarget target);
+
+ public static <T> AjaxLink<T> ajaxLink(String id, WicketConsumer<AjaxRequestTarget> onClick)
+ {
+ Args.notNull(onClick, "onClick");
+
+ return new AjaxLink<T>(id)
+ {
+ @Override
+ public void onClick(AjaxRequestTarget target)
+ {
+ onClick.accept(target);
+ }
+ };
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/229fee82/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 6feb38b..ce2fcf7 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
@@ -23,6 +23,8 @@ 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.apache.wicket.model.lambda.WicketBiConsumer;
+import org.apache.wicket.util.lang.Args;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -217,6 +219,42 @@ public abstract class AjaxButton extends Button
{
}
+ public static AjaxButton ajaxButton(String id, WicketBiConsumer<AjaxRequestTarget, Form<?>> onSubmit)
+ {
+ Args.notNull(onSubmit, "onSubmit");
+
+ return new AjaxButton(id)
+ {
+ @Override
+ public void onSubmit(AjaxRequestTarget target, Form<?> form)
+ {
+ onSubmit.accept(target, form);
+ }
+ };
+ }
+
+ public static AjaxButton ajaxButton(String id, WicketBiConsumer<AjaxRequestTarget, Form<?>> onSubmit,
+ WicketBiConsumer<AjaxRequestTarget, Form<?>> onError)
+ {
+ Args.notNull(onSubmit, "onSubmit");
+ Args.notNull(onError, "onError");
+
+ return new AjaxButton(id)
+ {
+ @Override
+ public void onSubmit(AjaxRequestTarget target, Form<?> form)
+ {
+ onSubmit.accept(target, form);
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target, Form<?> form)
+ {
+ onError.accept(target, form);
+ }
+ };
+ }
+
/**
* Listener method invoked on form submit with no errors, after {@link Form#onSubmit()}.
*
http://git-wip-us.apache.org/repos/asf/wicket/blob/229fee82/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxCheckBox.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxCheckBox.java b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxCheckBox.java
index 0e20071..54e8b3d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxCheckBox.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxCheckBox.java
@@ -21,6 +21,8 @@ import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.lambda.WicketConsumer;
+import org.apache.wicket.util.lang.Args;
/**
* A CheckBox which is updated via ajax when the user changes its value
@@ -89,4 +91,18 @@ public abstract class AjaxCheckBox extends CheckBox
* @param target
*/
protected abstract void onUpdate(AjaxRequestTarget target);
+
+ public static AjaxCheckBox ajaxCheckBox(String id, WicketConsumer<AjaxRequestTarget> onUpdate)
+ {
+ Args.notNull(onUpdate, "onUpdate");
+
+ return new AjaxCheckBox(id)
+ {
+ @Override
+ public void onUpdate(AjaxRequestTarget target)
+ {
+ onUpdate.accept(target);
+ }
+ };
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/229fee82/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxSubmitLink.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxSubmitLink.java b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxSubmitLink.java
index 619e289..f369bf6 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxSubmitLink.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxSubmitLink.java
@@ -22,6 +22,8 @@ import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.form.AbstractSubmitLink;
import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.model.lambda.WicketBiConsumer;
+import org.apache.wicket.util.lang.Args;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -134,6 +136,43 @@ public abstract class AjaxSubmitLink extends AbstractSubmitLink
{
}
+ public static AjaxSubmitLink ajaxSubmitLink(String id, WicketBiConsumer<AjaxRequestTarget, Form<?>> onSubmit)
+ {
+ Args.notNull(onSubmit, "onSubmit");
+
+ return new AjaxSubmitLink(id)
+ {
+ @Override
+ public void onSubmit(AjaxRequestTarget target, Form<?> form)
+ {
+ onSubmit.accept(target, form);
+ }
+ };
+ }
+
+ public static AjaxSubmitLink ajaxSubmitLink(String id,
+ WicketBiConsumer<AjaxRequestTarget, Form<?>> onSubmit,
+ WicketBiConsumer<AjaxRequestTarget, Form<?>> onError)
+ {
+ Args.notNull(onSubmit, "onSubmit");
+ Args.notNull(onError, "onError");
+
+ return new AjaxSubmitLink(id)
+ {
+ @Override
+ public void onSubmit(AjaxRequestTarget target, Form<?> form)
+ {
+ onSubmit.accept(target, form);
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target, Form<?> form)
+ {
+ onError.accept(target, form);
+ }
+ };
+ }
+
protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
{
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/229fee82/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java
index b4ba44e..10e6396 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java
@@ -22,7 +22,9 @@ import org.apache.wicket.Page;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.lambda.WicketConsumer;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.util.lang.Args;
/**
* Implementation of a hyperlink component. A link can be used with an anchor (<a href...)
@@ -175,6 +177,20 @@ public abstract class Link<T> extends AbstractLink implements ILinkListener, IGe
*/
public abstract void onClick();
+ public static <T> Link<T> link(String id, WicketConsumer<Void> onClick)
+ {
+ Args.notNull(onClick, "onClick");
+
+ return new Link<T>(id)
+ {
+ @Override
+ public void onClick()
+ {
+ onClick.accept((Void)null);
+ }
+ };
+ }
+
/**
* THIS METHOD IS NOT PART OF THE WICKET API. DO NOT ATTEMPT TO OVERRIDE OR CALL IT.
*
http://git-wip-us.apache.org/repos/asf/wicket/blob/229fee82/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxButton.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxButton.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxButton.java
index bd123a1..39da031 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxButton.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxButton.java
@@ -16,10 +16,13 @@
*/
package org.apache.wicket.extensions.ajax.markup.html;
+import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.IAjaxIndicatorAware;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.lambda.WicketBiConsumer;
+import org.apache.wicket.util.lang.Args;
/**
* A variant of the {@link AjaxButton} that displays a busy indicator while the ajax request is in
@@ -30,11 +33,8 @@ import org.apache.wicket.model.IModel;
*/
public abstract class IndicatingAjaxButton extends AjaxButton implements IAjaxIndicatorAware
{
-
- /**
- *
- */
private static final long serialVersionUID = 1L;
+
private final AjaxIndicatorAppender indicatorAppender = new AjaxIndicatorAppender();
/**
@@ -95,4 +95,40 @@ public abstract class IndicatingAjaxButton extends AjaxButton implements IAjaxIn
return indicatorAppender.getMarkupId();
}
-}
\ No newline at end of file
+
+ public static IndicatingAjaxButton indicatingAjaxButton(String id, WicketBiConsumer<AjaxRequestTarget, Form<?>> onSubmit)
+ {
+ Args.notNull(onSubmit, "onSubmit");
+
+ return new IndicatingAjaxButton(id)
+ {
+ @Override
+ public void onSubmit(AjaxRequestTarget target, Form<?> form)
+ {
+ onSubmit.accept(target, form);
+ }
+ };
+ }
+
+ public static IndicatingAjaxButton indicatingAjaxButton(String id, WicketBiConsumer<AjaxRequestTarget, Form<?>> onSubmit,
+ WicketBiConsumer<AjaxRequestTarget, Form<?>> onError)
+ {
+ Args.notNull(onSubmit, "onSubmit");
+ Args.notNull(onError, "onError");
+
+ return new IndicatingAjaxButton(id)
+ {
+ @Override
+ public void onSubmit(AjaxRequestTarget target, Form<?> form)
+ {
+ onSubmit.accept(target, form);
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target, Form<?> form)
+ {
+ onError.accept(target, form);
+ }
+ };
+ }
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/229fee82/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxLink.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxLink.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxLink.java
index 88cf293..dabd29a 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxLink.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxLink.java
@@ -16,9 +16,12 @@
*/
package org.apache.wicket.extensions.ajax.markup.html;
+import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.IAjaxIndicatorAware;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.lambda.WicketConsumer;
+import org.apache.wicket.util.lang.Args;
/**
* A variant of the {@link AjaxLink} that displays a busy indicator while the ajax request is in
@@ -66,4 +69,18 @@ public abstract class IndicatingAjaxLink<T> extends AjaxLink<T> implements IAjax
return indicatorAppender.getMarkupId();
}
+
+ public static <T> IndicatingAjaxLink<T> indicatingAjaxLink(String id, WicketConsumer<AjaxRequestTarget> onClick)
+ {
+ Args.notNull(onClick, "onClick");
+
+ return new IndicatingAjaxLink<T>(id)
+ {
+ @Override
+ public void onClick(AjaxRequestTarget target)
+ {
+ onClick.accept(target);
+ }
+ };
+ }
}