Updated Branches: refs/heads/sandbox/component-queueing-2 101e20017 -> d24f46557
WICKET-3335 Add support for InlineEnclosure Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d24f4655 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d24f4655 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d24f4655 Branch: refs/heads/sandbox/component-queueing-2 Commit: d24f465574f8c781b963173ddecefa89b9831e84 Parents: 101e200 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Mon Feb 10 14:46:50 2014 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Mon Feb 10 14:46:50 2014 +0200 ---------------------------------------------------------------------- .../markup/parser/filter/EnclosureHandler.java | 3 -- .../parser/filter/InlineEnclosureHandler.java | 10 +++++++ .../wicket/queueing/ComponentQueueingTest.java | 30 ++++++++++++++++++++ 3 files changed, 40 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/d24f4655/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java index 91d53e7..4a47f38 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java @@ -45,7 +45,6 @@ import org.apache.wicket.markup.resolver.IComponentResolver; * enclosure is identified by the 'child' attribute value which must be equal to the relative child * id path. * - * @see EnclosureResolver * @see Enclosure * * @author Juergen Donnerstag @@ -56,8 +55,6 @@ public final class EnclosureHandler extends AbstractMarkupFilter implements ICom private static final IAutoComponentFactory FACTORY = new IAutoComponentFactory() { - - @Override public Component newComponent(ComponentTag tag) { http://git-wip-us.apache.org/repos/asf/wicket/blob/d24f4655/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java index 5eb94fc..e3c953a 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java @@ -124,6 +124,16 @@ public final class InlineEnclosureHandler extends AbstractMarkupFilter } tag.setAutoComponentTag(true); + tag.setAutoComponentFactory(new ComponentTag.IAutoComponentFactory() + { + @Override + public Component newComponent(ComponentTag tag) + { + String attributeName = getInlineEnclosureAttributeName(null); + String childId = tag.getAttribute(attributeName); + return new InlineEnclosure(tag.getId(), childId); + } + }); tag.setModified(true); } http://git-wip-us.apache.org/repos/asf/wicket/blob/d24f4655/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java b/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java index 175a8d6..6a247ff 100644 --- a/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java @@ -515,6 +515,36 @@ public class ComponentQueueingTest extends WicketTestCase assertEquals("", tester.getLastResponseAsString()); } + /** + * Test InlineEnclosure + */ + @Test + public void autos6() + { + TestPage p = new TestPage(); + p.setPageMarkup("<div wicket:enclosure='a'><div wicket:id='a'></div><div wicket:id='b'></div></div>"); + A a = new A(); + B b = new B(); + p.queue(a, b); + tester.startPage(p); + + assertTrue(a.getParent() instanceof Enclosure); + assertTrue(b.getParent() instanceof Enclosure); + + // A is visible, enclosure renders + + assertEquals( + "<div wicket:enclosure=\"a\" id=\"wicket__InlineEnclosure_01\"><div wicket:id=\"a\"></div><div wicket:id=\"b\"></div></div>", + tester.getLastResponseAsString()); + + // A is not visible, enclosure does not render + + a.setVisible(false); + tester.startPage(p); + assertEquals("<div id=\"wicket__InlineEnclosure_01\" style=\"display:none\"></div>", tester.getLastResponseAsString()); + } + + private static class A extends WebMarkupContainer { public A()
