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 (&lt;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);
+			}
+		};
+	}
 }