Repository: wicket
Updated Branches:
refs/heads/static-factories-for-lambdas 229fee822 -> d3bee7507
Introduce Lambdas class - a class with factory methods for creating
components and behaviors by using lambdas for their callback methods
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d3bee750
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d3bee750
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d3bee750
Branch: refs/heads/static-factories-for-lambdas
Commit: d3bee7507e14e7a1dc8ba9e9a0c77e02bffacda6
Parents: 229fee8
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Sat Mar 12 21:50:13 2016 +0100
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Sat Mar 12 21:50:13 2016 +0100
----------------------------------------------------------------------
.../wicket/ajax/AbstractAjaxTimerBehavior.java | 15 +-
.../wicket/ajax/AjaxClientInfoBehavior.java | 15 +-
.../apache/wicket/ajax/AjaxEventBehavior.java | 14 +-
.../ajax/AjaxNewWindowNotifyingBehavior.java | 24 +-
.../ajax/AjaxSelfUpdatingTimerBehavior.java | 15 +-
...AjaxFormChoiceComponentUpdatingBehavior.java | 34 +-
.../form/AjaxFormComponentUpdatingBehavior.java | 35 +-
.../ajax/form/AjaxFormSubmitBehavior.java | 33 +-
.../wicket/ajax/form/OnChangeAjaxBehavior.java | 35 +-
.../ajax/markup/html/AjaxFallbackLink.java | 2 -
.../wicket/ajax/markup/html/AjaxLink.java | 17 +-
.../ajax/markup/html/form/AjaxButton.java | 40 +-
.../ajax/markup/html/form/AjaxCheckBox.java | 17 +-
.../ajax/markup/html/form/AjaxSubmitLink.java | 33 +-
.../java/org/apache/wicket/lambdas/Lambdas.java | 366
+++++++++++++++++++
.../apache/wicket/lambdas/WicketBiConsumer.java | 32 ++
.../apache/wicket/lambdas/WicketConsumer.java | 30 ++
.../apache/wicket/lambdas/WicketFunction.java | 32 ++
.../apache/wicket/lambdas/WicketSupplier.java | 30 ++
.../apache/wicket/markup/html/link/Link.java | 17 +-
.../java/org/apache/wicket/model/Model.java | 41 +++
.../apache/wicket/model/lambda/LambdaModel.java | 7 +-
.../model/lambda/SupplierCachingModel.java | 1 +
.../wicket/model/lambda/SupplierModel.java | 1 +
.../wicket/model/lambda/WicketBiConsumer.java | 32 --
.../wicket/model/lambda/WicketConsumer.java | 30 --
.../wicket/model/lambda/WicketFunction.java | 32 --
.../wicket/model/lambda/WicketSupplier.java | 30 --
.../wicket/model/lambda/LambdaModelTest.java | 2 +
.../model/lambda/SupplierCachingModelTest.java | 1 +
.../wicket/model/lambda/SupplierModelTest.java | 1 +
.../ajax/markup/html/IndicatingAjaxButton.java | 9 +-
.../ajax/markup/html/IndicatingAjaxLink.java | 2 +-
33 files changed, 603 insertions(+), 422 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
index aef5591..4a3609c 100644
---
a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
+++
b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
@@ -19,10 +19,10 @@ package org.apache.wicket.ajax;
import org.apache.wicket.Component;
import org.apache.wicket.Page;
import
org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+import org.apache.wicket.lambdas.Lambdas;
+import org.apache.wicket.lambdas.WicketConsumer;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.OnLoadHeaderItem;
-import org.apache.wicket.model.lambda.WicketConsumer;
-import org.apache.wicket.util.lang.Args;
import org.apache.wicket.util.time.Duration;
/**
@@ -165,16 +165,7 @@ public abstract class AbstractAjaxTimerBehavior
extends AbstractDefaultAjaxBehav
public static AbstractAjaxTimerBehavior onTimer(Duration
interval, WicketConsumer<AjaxRequestTarget> onTimer)
{
- Args.notNull(onTimer, "onTimer");
-
- return new AbstractAjaxTimerBehavior(interval)
- {
- @Override
- protected void onTimer(AjaxRequestTarget target)
- {
- onTimer.accept(target);
- }
- };
+ return Lambdas.onTimer(interval, onTimer);
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java
b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java
index 22c9316..bd7c954 100644
---
a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java
+++
b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java
@@ -19,15 +19,15 @@ package org.apache.wicket.ajax;
import org.apache.wicket.Component;
import org.apache.wicket.Session;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.lambdas.Lambdas;
+import org.apache.wicket.lambdas.WicketBiConsumer;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.html.pages.BrowserInfoForm;
-import org.apache.wicket.model.lambda.WicketBiConsumer;
import org.apache.wicket.protocol.http.ClientProperties;
import org.apache.wicket.protocol.http.request.WebClientInfo;
import org.apache.wicket.request.IRequestParameters;
import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.util.lang.Args;
import org.apache.wicket.util.time.Duration;
/**
@@ -122,16 +122,7 @@ public class AjaxClientInfoBehavior extends
AbstractAjaxTimerBehavior
public static AjaxClientInfoBehavior
onClientInfo(WicketBiConsumer<AjaxRequestTarget, WebClientInfo>
onClientInfo)
{
- Args.notNull(onClientInfo, "onClientInfo");
-
- return new AjaxClientInfoBehavior()
- {
- @Override
- protected void onClientInfo(AjaxRequestTarget
target, WebClientInfo clientInfo)
- {
- onClientInfo.accept(target, clientInfo);
- }
- };
+ return Lambdas.onClientInfo(onClientInfo);
}
@Override
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxEventBehavior.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxEventBehavior.java
b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxEventBehavior.java
index 7a11b2d..fa49035 100644
---
a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxEventBehavior.java
+++
b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxEventBehavior.java
@@ -21,9 +21,10 @@ import java.util.List;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.lambdas.Lambdas;
+import org.apache.wicket.lambdas.WicketConsumer;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
-import org.apache.wicket.model.lambda.WicketConsumer;
import org.apache.wicket.util.lang.Args;
import org.apache.wicket.util.lang.Checks;
import org.apache.wicket.util.string.Strings;
@@ -166,15 +167,6 @@ public abstract class AjaxEventBehavior extends
AbstractDefaultAjaxBehavior
public static AjaxEventBehavior onEvent(String eventName,
WicketConsumer<AjaxRequestTarget> onEvent)
{
- Args.notNull(onEvent, "onEvent");
-
- return new AjaxEventBehavior(eventName)
- {
- @Override
- protected void onEvent(AjaxRequestTarget target)
- {
- onEvent.accept(target);
- }
- };
+ return Lambdas.onEvent(eventName, onEvent);
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxNewWindowNotifyingBehavior.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxNewWindowNotifyingBehavior.java
b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxNewWindowNotifyingBehavior.java
index 932d54e..130666b 100644
---
a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxNewWindowNotifyingBehavior.java
+++
b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxNewWindowNotifyingBehavior.java
@@ -21,16 +21,13 @@ import java.util.UUID;
import org.apache.wicket.Component;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.lambdas.Lambdas;
+import org.apache.wicket.lambdas.WicketConsumer;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.head.OnLoadHeaderItem;
import org.apache.wicket.markup.html.WebPage;
-import org.apache.wicket.model.lambda.WicketBiConsumer;
-import org.apache.wicket.model.lambda.WicketConsumer;
-import org.apache.wicket.protocol.http.request.WebClientInfo;
-import org.apache.wicket.util.lang.Args;
import org.apache.wicket.util.string.StringValue;
-import org.apache.wicket.util.string.Strings;
/**
* An Ajax behavior that notifies when a new browser window/tab is
opened with
@@ -133,21 +130,6 @@ public abstract class AjaxNewWindowNotifyingBehavior
extends AbstractDefaultAjax
public static AjaxNewWindowNotifyingBehavior onNewWindow(String
windowName, WicketConsumer<AjaxRequestTarget> onNewWindow)
{
- Args.notNull(onNewWindow, "onNewWindow");
-
- if (Strings.isEmpty(windowName))
- {
- windowName = UUID.randomUUID().toString();
- }
-
- return new AjaxNewWindowNotifyingBehavior(windowName)
- {
- @Override
- protected void onNewWindow(AjaxRequestTarget
target)
- {
- onNewWindow.accept(target);
- }
- };
+ return Lambdas.onNewWindow(windowName, onNewWindow);
}
-
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxSelfUpdatingTimerBehavior.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxSelfUpdatingTimerBehavior.java
b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxSelfUpdatingTimerBehavior.java
index 479a6b9..d615ae5 100644
---
a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxSelfUpdatingTimerBehavior.java
+++
b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxSelfUpdatingTimerBehavior.java
@@ -16,8 +16,8 @@
*/
package org.apache.wicket.ajax;
-import org.apache.wicket.model.lambda.WicketConsumer;
-import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.lambdas.Lambdas;
+import org.apache.wicket.lambdas.WicketConsumer;
import org.apache.wicket.util.time.Duration;
/**
@@ -67,15 +67,6 @@ public class AjaxSelfUpdatingTimerBehavior extends
AbstractAjaxTimerBehavior
public static AbstractAjaxTimerBehavior onSelfUpdate(Duration
interval, WicketConsumer<AjaxRequestTarget> onTimer)
{
- Args.notNull(onTimer, "onTimer");
-
- return new AjaxSelfUpdatingTimerBehavior(interval)
- {
- @Override
- protected void
onPostProcessTarget(AjaxRequestTarget target)
- {
- onTimer.accept(target);
- }
- };
+ return Lambdas.onSelfUpdate(interval, onTimer);
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java
b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java
index e5bc69a..19915d6 100644
---
a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java
+++
b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java
@@ -21,14 +21,14 @@ import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.attributes.AjaxCallListener;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.lambdas.Lambdas;
+import org.apache.wicket.lambdas.WicketBiConsumer;
+import org.apache.wicket.lambdas.WicketConsumer;
import org.apache.wicket.markup.html.form.CheckBoxMultipleChoice;
import org.apache.wicket.markup.html.form.CheckGroup;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.markup.html.form.RadioChoice;
import org.apache.wicket.markup.html.form.RadioGroup;
-import org.apache.wicket.model.lambda.WicketBiConsumer;
-import org.apache.wicket.model.lambda.WicketConsumer;
-import org.apache.wicket.util.lang.Args;
/**
* This is a Ajax Component Update Behavior that is meant for
choices/groups that are not one
@@ -114,36 +114,12 @@ public abstract class
AjaxFormChoiceComponentUpdatingBehavior extends
(component instanceof CheckGroup);
}
-
public static AjaxFormChoiceComponentUpdatingBehavior
onUpdateChoice(WicketConsumer<AjaxRequestTarget> onUpdateChoice) {
- Args.notNull(onUpdateChoice, "onUpdateChoice");
- return new AjaxFormChoiceComponentUpdatingBehavior()
- {
- @Override
- protected void onUpdate(AjaxRequestTarget target)
- {
- onUpdateChoice.accept(target);
- }
- };
+ return Lambdas.onUpdateChoice(onUpdateChoice);
}
public static AjaxFormChoiceComponentUpdatingBehavior
onUpdateChoice(WicketConsumer<AjaxRequestTarget> onUpdateChoice,
WicketBiConsumer<AjaxRequestTarget, RuntimeException> onError) {
- Args.notNull(onUpdateChoice, "onUpdateChoice");
- Args.notNull(onError, "onError");
- return new AjaxFormChoiceComponentUpdatingBehavior()
- {
- @Override
- protected void onUpdate(AjaxRequestTarget target)
- {
- onUpdateChoice.accept(target);
- }
-
- @Override
- protected void onError(AjaxRequestTarget target,
RuntimeException e)
- {
- onError.accept(target, e);
- }
- };
+ return Lambdas.onUpdateChoice(onUpdateChoice, onError);
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java
b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java
index 97b31a3..490afd6 100644
---
a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java
+++
b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java
@@ -23,11 +23,11 @@ import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes.Method;
+import org.apache.wicket.lambdas.Lambdas;
+import org.apache.wicket.lambdas.WicketBiConsumer;
+import org.apache.wicket.lambdas.WicketConsumer;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.markup.html.form.validation.IFormValidator;
-import org.apache.wicket.model.lambda.WicketBiConsumer;
-import org.apache.wicket.model.lambda.WicketConsumer;
-import org.apache.wicket.util.lang.Args;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -205,39 +205,14 @@ public abstract class
AjaxFormComponentUpdatingBehavior extends AjaxEventBehavio
public static AjaxFormComponentUpdatingBehavior onUpdate(String
eventName, WicketConsumer<AjaxRequestTarget> onUpdate)
{
- Args.notNull(onUpdate, "onUpdate");
-
- return new AjaxFormComponentUpdatingBehavior(eventName)
- {
- @Override
- protected void onUpdate(AjaxRequestTarget target)
- {
- onUpdate.accept(target);
- }
- };
+ return Lambdas.onUpdate(eventName, onUpdate);
}
public static AjaxFormComponentUpdatingBehavior onUpdate(String
eventName,
WicketConsumer<AjaxRequestTarget> onUpdate,
WicketBiConsumer<AjaxRequestTarget, RuntimeException> onError)
{
- Args.notNull(onUpdate, "onUpdate");
- Args.notNull(onError, "onError");
-
- return new AjaxFormComponentUpdatingBehavior(eventName)
- {
- @Override
- protected void onUpdate(AjaxRequestTarget target)
- {
- onUpdate.accept(target);
- }
-
- @Override
- protected void onError(AjaxRequestTarget target,
RuntimeException e)
- {
- onError.accept(target, e);
- }
- };
+ return onUpdate(eventName, onUpdate, onError);
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java
b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java
index 7b7c4a0..7011481 100644
---
a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java
+++
b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java
@@ -21,12 +21,12 @@ import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes.Method;
+import org.apache.wicket.lambdas.Lambdas;
+import org.apache.wicket.lambdas.WicketConsumer;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.IFormSubmitter;
import org.apache.wicket.markup.html.form.IFormSubmittingComponent;
-import org.apache.wicket.model.lambda.WicketConsumer;
-import org.apache.wicket.util.lang.Args;
/**
* Ajax event behavior that submits a form via ajax when the event it
is attached to, is invoked.
@@ -272,37 +272,12 @@ public abstract class AjaxFormSubmitBehavior
extends AjaxEventBehavior
public static AjaxFormSubmitBehavior onSubmit(String eventName,
WicketConsumer<AjaxRequestTarget> onSubmit)
{
- Args.notNull(onSubmit, "onSubmit");
-
- return new AjaxFormSubmitBehavior(eventName)
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target)
- {
- onSubmit.accept(target);
- }
- };
+ return Lambdas.onSubmit(eventName, onSubmit);
}
public static AjaxFormSubmitBehavior onSubmit(String eventName,
WicketConsumer<AjaxRequestTarget> onSubmit,
WicketConsumer<AjaxRequestTarget> onError) {
- Args.notNull(onSubmit, "onSubmit");
- Args.notNull(onError, "onError");
-
- return new AjaxFormSubmitBehavior(eventName)
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target)
- {
- onSubmit.accept(target);
- }
-
- @Override
- protected void onError(AjaxRequestTarget target)
- {
- onError.accept(target);
- }
- };
+ return Lambdas.onSubmit(eventName, onSubmit, onError);
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
b/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
index e1f2d9b..01c07a8 100644
---
a/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
+++
b/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
@@ -19,12 +19,12 @@ package org.apache.wicket.ajax.form;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.lambdas.Lambdas;
+import org.apache.wicket.lambdas.WicketBiConsumer;
+import org.apache.wicket.lambdas.WicketConsumer;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.model.lambda.WicketBiConsumer;
-import org.apache.wicket.model.lambda.WicketConsumer;
-import org.apache.wicket.util.lang.Args;
/**
* A behavior that updates the hosting {@link FormComponent} via Ajax
when value of the component is
@@ -80,38 +80,13 @@ public abstract class OnChangeAjaxBehavior extends
AjaxFormComponentUpdatingBeha
public static OnChangeAjaxBehavior
onChange(WicketConsumer<AjaxRequestTarget> onChange)
{
- Args.notNull(onChange, "onChange");
-
- return new OnChangeAjaxBehavior()
- {
- @Override
- protected void onUpdate(AjaxRequestTarget target)
- {
- onChange.accept(target);
- }
- };
+ return Lambdas.onChange(onChange);
}
public static OnChangeAjaxBehavior
onChange(WicketConsumer<AjaxRequestTarget> onChange,
WicketBiConsumer<AjaxRequestTarget, RuntimeException> onError)
{
- Args.notNull(onChange, "onChange");
- Args.notNull(onError, "onError");
-
- return new OnChangeAjaxBehavior()
- {
- @Override
- protected void onUpdate(AjaxRequestTarget target)
- {
- onChange.accept(target);
- }
-
- @Override
- protected void onError(AjaxRequestTarget target,
RuntimeException e)
- {
- onError.accept(target, e);
- }
- };
+ return Lambdas.onChange(onChange, onError);
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/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 29ccb99..d4f95a3 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,8 +24,6 @@ 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/d3bee750/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 bf3d4d5..1907f58 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
@@ -20,11 +20,11 @@ import org.apache.wicket.IGenericComponent;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.lambdas.Lambdas;
+import org.apache.wicket.lambdas.WicketConsumer;
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
@@ -135,17 +135,8 @@ 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)
+ public static <T> AjaxLink<T> onClick(String id,
WicketConsumer<AjaxRequestTarget> onClick)
{
- Args.notNull(onClick, "onClick");
-
- return new AjaxLink<T>(id)
- {
- @Override
- public void onClick(AjaxRequestTarget target)
- {
- onClick.accept(target);
- }
- };
+ return Lambdas.ajaxLink(id, onClick);
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/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 ce2fcf7..9d3732f 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,12 +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.lambdas.Lambdas;
+import org.apache.wicket.lambdas.WicketBiConsumer;
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;
@@ -219,40 +219,16 @@ public abstract class AjaxButton extends Button
{
}
- public static AjaxButton ajaxButton(String id,
WicketBiConsumer<AjaxRequestTarget, Form<?>> onSubmit)
+ public static AjaxButton onSubmit(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);
- }
- };
+ return Lambdas.ajaxButton(id, onSubmit);
}
- public static AjaxButton ajaxButton(String id,
WicketBiConsumer<AjaxRequestTarget, Form<?>> onSubmit,
-
WicketBiConsumer<AjaxRequestTarget, Form<?>> onError)
+ public static AjaxButton onSubmit(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);
- }
- };
+ return Lambdas.ajaxButton(id, onSubmit, onError);
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/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 54e8b3d..5dba68e 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
@@ -19,10 +19,10 @@ 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.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.lambdas.Lambdas;
+import org.apache.wicket.lambdas.WicketConsumer;
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
@@ -92,17 +92,8 @@ public abstract class AjaxCheckBox extends CheckBox
*/
protected abstract void onUpdate(AjaxRequestTarget target);
- public static AjaxCheckBox ajaxCheckBox(String id,
WicketConsumer<AjaxRequestTarget> onUpdate)
+ public static AjaxCheckBox onUpdate(String id,
WicketConsumer<AjaxRequestTarget> onUpdate)
{
- Args.notNull(onUpdate, "onUpdate");
-
- return new AjaxCheckBox(id)
- {
- @Override
- public void onUpdate(AjaxRequestTarget target)
- {
- onUpdate.accept(target);
- }
- };
+ return Lambdas.ajaxCheckBox(id, onUpdate);
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/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 f369bf6..552f64c 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
@@ -19,11 +19,11 @@ 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.lambdas.Lambdas;
+import org.apache.wicket.lambdas.WicketBiConsumer;
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;
@@ -138,39 +138,14 @@ 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);
- }
- };
+ return Lambdas.ajaxSubmitLink(id, onSubmit);
}
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);
- }
- };
+ return Lambdas.ajaxSubmitLink(id, onSubmit, onError);
}
protected void updateAjaxAttributes(AjaxRequestAttributes
attributes)
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/wicket-core/src/main/java/org/apache/wicket/lambdas/Lambdas.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/lambdas/Lambdas.java
b/wicket-core/src/main/java/org/apache/wicket/lambdas/Lambdas.java
new file mode 100644
index 0000000..0397706
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/lambdas/Lambdas.java
@@ -0,0 +1,366 @@
+package org.apache.wicket.lambdas;
+
+import java.util.UUID;
+
+import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
+import org.apache.wicket.ajax.AjaxClientInfoBehavior;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxNewWindowNotifyingBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
+import
org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior;
+import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
+import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
+import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.protocol.http.request.WebClientInfo;
+import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.util.string.Strings;
+import org.apache.wicket.util.time.Duration;
+
+/**
+ *
+ */
+public class Lambdas
+{
+ public static AbstractAjaxTimerBehavior onTimer(Duration
interval, WicketConsumer<AjaxRequestTarget> onTimer)
+ {
+ Args.notNull(onTimer, "onTimer");
+
+ return new AbstractAjaxTimerBehavior(interval)
+ {
+ @Override
+ protected void onTimer(AjaxRequestTarget target)
+ {
+ onTimer.accept(target);
+ }
+ };
+ }
+
+ public static AjaxClientInfoBehavior
onClientInfo(WicketBiConsumer<AjaxRequestTarget, WebClientInfo>
onClientInfo)
+ {
+ Args.notNull(onClientInfo, "onClientInfo");
+
+ return new AjaxClientInfoBehavior()
+ {
+ @Override
+ protected void onClientInfo(AjaxRequestTarget
target, WebClientInfo clientInfo)
+ {
+ onClientInfo.accept(target, clientInfo);
+ }
+ };
+ }
+
+ public static AjaxEventBehavior onEvent(String eventName,
WicketConsumer<AjaxRequestTarget> onEvent)
+ {
+ Args.notNull(onEvent, "onEvent");
+
+ return new AjaxEventBehavior(eventName)
+ {
+ @Override
+ protected void onEvent(AjaxRequestTarget target)
+ {
+ onEvent.accept(target);
+ }
+ };
+ }
+
+ public static AjaxNewWindowNotifyingBehavior onNewWindow(String
windowName, WicketConsumer<AjaxRequestTarget> onNewWindow)
+ {
+ Args.notNull(onNewWindow, "onNewWindow");
+
+ if (Strings.isEmpty(windowName))
+ {
+ windowName = UUID.randomUUID().toString();
+ }
+
+ return new AjaxNewWindowNotifyingBehavior(windowName)
+ {
+ @Override
+ protected void onNewWindow(AjaxRequestTarget
target)
+ {
+ onNewWindow.accept(target);
+ }
+ };
+ }
+
+ public static AbstractAjaxTimerBehavior onSelfUpdate(Duration
interval, WicketConsumer<AjaxRequestTarget> onTimer)
+ {
+ Args.notNull(onTimer, "onTimer");
+
+ return new AjaxSelfUpdatingTimerBehavior(interval)
+ {
+ @Override
+ protected void
onPostProcessTarget(AjaxRequestTarget target)
+ {
+ onTimer.accept(target);
+ }
+ };
+ }
+
+
+ public static AjaxFormChoiceComponentUpdatingBehavior
onUpdateChoice(WicketConsumer<AjaxRequestTarget> onUpdateChoice) {
+ Args.notNull(onUpdateChoice, "onUpdateChoice");
+ return new AjaxFormChoiceComponentUpdatingBehavior()
+ {
+ @Override
+ protected void onUpdate(AjaxRequestTarget target)
+ {
+ onUpdateChoice.accept(target);
+ }
+ };
+ }
+
+ public static AjaxFormChoiceComponentUpdatingBehavior
onUpdateChoice(WicketConsumer<AjaxRequestTarget> onUpdateChoice,
+
WicketBiConsumer<AjaxRequestTarget, RuntimeException> onError) {
+ Args.notNull(onUpdateChoice, "onUpdateChoice");
+ Args.notNull(onError, "onError");
+ return new AjaxFormChoiceComponentUpdatingBehavior()
+ {
+ @Override
+ protected void onUpdate(AjaxRequestTarget target)
+ {
+ onUpdateChoice.accept(target);
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target,
RuntimeException e)
+ {
+ onError.accept(target, e);
+ }
+ };
+ }
+
+
+ public static AjaxFormComponentUpdatingBehavior onUpdate(String
eventName, WicketConsumer<AjaxRequestTarget> onUpdate)
+ {
+ Args.notNull(onUpdate, "onUpdate");
+
+ return new AjaxFormComponentUpdatingBehavior(eventName)
+ {
+ @Override
+ protected void onUpdate(AjaxRequestTarget target)
+ {
+ onUpdate.accept(target);
+ }
+ };
+ }
+
+ public static AjaxFormComponentUpdatingBehavior onUpdate(String
eventName,
+
WicketConsumer<AjaxRequestTarget> onUpdate,
+
WicketBiConsumer<AjaxRequestTarget, RuntimeException> onError)
+ {
+ Args.notNull(onUpdate, "onUpdate");
+ Args.notNull(onError, "onError");
+
+ return new AjaxFormComponentUpdatingBehavior(eventName)
+ {
+ @Override
+ protected void onUpdate(AjaxRequestTarget target)
+ {
+ onUpdate.accept(target);
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target,
RuntimeException e)
+ {
+ onError.accept(target, e);
+ }
+ };
+ }
+
+ public static AjaxFormSubmitBehavior onSubmit(String eventName,
WicketConsumer<AjaxRequestTarget> onSubmit)
+ {
+ Args.notNull(onSubmit, "onSubmit");
+
+ return new AjaxFormSubmitBehavior(eventName)
+ {
+ @Override
+ protected void onSubmit(AjaxRequestTarget target)
+ {
+ onSubmit.accept(target);
+ }
+ };
+ }
+
+ public static AjaxFormSubmitBehavior onSubmit(String eventName,
+
WicketConsumer<AjaxRequestTarget> onSubmit,
+
WicketConsumer<AjaxRequestTarget> onError) {
+ Args.notNull(onSubmit, "onSubmit");
+ Args.notNull(onError, "onError");
+
+ return new AjaxFormSubmitBehavior(eventName)
+ {
+ @Override
+ protected void onSubmit(AjaxRequestTarget target)
+ {
+ onSubmit.accept(target);
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target)
+ {
+ onError.accept(target);
+ }
+ };
+ }
+
+
+ public static OnChangeAjaxBehavior
onChange(WicketConsumer<AjaxRequestTarget> onChange)
+ {
+ Args.notNull(onChange, "onChange");
+
+ return new OnChangeAjaxBehavior()
+ {
+ @Override
+ protected void onUpdate(AjaxRequestTarget target)
+ {
+ onChange.accept(target);
+ }
+ };
+ }
+
+ public static OnChangeAjaxBehavior
onChange(WicketConsumer<AjaxRequestTarget> onChange,
+
WicketBiConsumer<AjaxRequestTarget, RuntimeException> onError)
+ {
+ Args.notNull(onChange, "onChange");
+ Args.notNull(onError, "onError");
+
+ return new OnChangeAjaxBehavior()
+ {
+ @Override
+ protected void onUpdate(AjaxRequestTarget target)
+ {
+ onChange.accept(target);
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target,
RuntimeException e)
+ {
+ onError.accept(target, e);
+ }
+ };
+ }
+
+ 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);
+ }
+ };
+ }
+
+
+ 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);
+ }
+ };
+ }
+
+ 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);
+ }
+ };
+ }
+
+
+ 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);
+ }
+ };
+ }
+
+ 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);
+ }
+ };
+ }
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/wicket-core/src/main/java/org/apache/wicket/lambdas/WicketBiConsumer.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/lambdas/WicketBiConsumer.java
b/wicket-core/src/main/java/org/apache/wicket/lambdas/WicketBiConsumer.java
new file mode 100644
index 0000000..509a6c5
--- /dev/null
+++
b/wicket-core/src/main/java/org/apache/wicket/lambdas/WicketBiConsumer.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version
2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.lambdas;
+
+import java.io.Serializable;
+import java.util.function.BiConsumer;
+
+/**
+ * A {@link Serializable} {@link BiConsumer}.
+ *
+ * @param <T>
+ * - the type of the first input to consume
+ * @param <T>
+ * - the type of the second input to consume
+ */
+public interface WicketBiConsumer<T, U> extends BiConsumer<T, U>,
Serializable
+{
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/wicket-core/src/main/java/org/apache/wicket/lambdas/WicketConsumer.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/lambdas/WicketConsumer.java
b/wicket-core/src/main/java/org/apache/wicket/lambdas/WicketConsumer.java
new file mode 100644
index 0000000..36404f2
--- /dev/null
+++
b/wicket-core/src/main/java/org/apache/wicket/lambdas/WicketConsumer.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version
2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.lambdas;
+
+import java.io.Serializable;
+import java.util.function.Consumer;
+
+/**
+ * A {@link Serializable} {@link Consumer}.
+ *
+ * @param <T>
+ * - the type of the input to consume
+ */
+public interface WicketConsumer<T> extends Consumer<T>, Serializable
+{
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d3bee750/wicket-core/src/main/java/org/apache/wicket/lambdas/WicketFunction.java
----------------------------------------------------------------------
diff --git
a/wicket-core/src/main/java/org/apache/wicket/lambdas/WicketFunction.java
b/wicket-core/src/main/java/org/apache/wicket/lambdas/WicketFunction.java
new file mode 100644
index 0000000..7c6b9ae
--- /dev/null
+++
b/wicket-core/src/main/java/org/apache/wicket/lambdas/WicketFunction.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version
2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,