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/04/01 14:18:29 UTC
wicket git commit: Add Lambdas#onTag()
Repository: wicket
Updated Branches:
refs/heads/master 241732267 -> 76726dc7f
Add Lambdas#onTag()
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/76726dc7
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/76726dc7
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/76726dc7
Branch: refs/heads/master
Commit: 76726dc7fbb5db33ae6f24df559aad82c4cb7950
Parents: 2417322
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Fri Apr 1 14:17:08 2016 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Fri Apr 1 14:17:08 2016 +0200
----------------------------------------------------------------------
.../java/org/apache/wicket/lambda/Lambdas.java | 31 ++++++++++++++++++
.../org/apache/wicket/lambda/LambdasTest.java | 33 ++++++++++++++++++++
2 files changed, 64 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/76726dc7/wicket-core/src/main/java/org/apache/wicket/lambda/Lambdas.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/lambda/Lambdas.java b/wicket-core/src/main/java/org/apache/wicket/lambda/Lambdas.java
index c5656d8..0b8f27a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/lambda/Lambdas.java
+++ b/wicket-core/src/main/java/org/apache/wicket/lambda/Lambdas.java
@@ -18,6 +18,7 @@ package org.apache.wicket.lambda;
import java.util.UUID;
+import org.apache.wicket.Component;
import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
import org.apache.wicket.ajax.AjaxClientInfoBehavior;
import org.apache.wicket.ajax.AjaxEventBehavior;
@@ -32,6 +33,8 @@ 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.behavior.Behavior;
+import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.protocol.http.request.WebClientInfo;
@@ -623,4 +626,32 @@ public class Lambdas
}
};
}
+
+ /**
+ * Creates a {@link Behavior} that uses the given {@link WicketConsumer consumer}
+ * to do something with the component's tag.
+ *
+ * <p>
+ * Usage:<br/>
+ * <code>component.add(onTag(tag -> tag.put(key, value)));</code>
+ * </p>
+ *
+ * @param onTagConsumer
+ * the {@link WicketConsumer} that accepts the {@link ComponentTag}
+ * @return The created behavior
+ */
+ public static Behavior onTag(WicketConsumer<ComponentTag> onTagConsumer)
+ {
+ Args.notNull(onTagConsumer, "onTagConsumer");
+
+ return new Behavior()
+ {
+ @Override
+ public void onComponentTag(Component component, ComponentTag tag)
+ {
+ super.onComponentTag(component, tag);
+ onTagConsumer.accept(tag);
+ }
+ };
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/76726dc7/wicket-core/src/test/java/org/apache/wicket/lambda/LambdasTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/lambda/LambdasTest.java b/wicket-core/src/test/java/org/apache/wicket/lambda/LambdasTest.java
new file mode 100644
index 0000000..37ee41f
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/lambda/LambdasTest.java
@@ -0,0 +1,33 @@
+package org.apache.wicket.lambda;
+
+import static org.apache.wicket.lambda.Lambdas.onTag;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+
+import org.apache.wicket.MockPageWithOneComponent;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.util.tester.TagTester;
+import org.apache.wicket.util.tester.WicketTestCase;
+import org.junit.Test;
+
+/**
+ * Tests for {@link Lambdas}
+ */
+public class LambdasTest extends WicketTestCase
+{
+ @Test
+ public void onTagTest()
+ {
+ WebMarkupContainer component = new WebMarkupContainer(MockPageWithOneComponent.COMPONENT_ID);
+ MockPageWithOneComponent page = new MockPageWithOneComponent();
+ page.add(component);
+ String value = "value";
+ String key = "key";
+ component.add(onTag(tag -> tag.put(key, value)));
+
+ tester.startPage(page);
+
+ TagTester tagTester = tester.getTagByWicketId(MockPageWithOneComponent.COMPONENT_ID);
+ assertThat(tagTester.getAttribute(key), is(equalTo(value)));
+ }
+}