You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2017/06/19 14:21:46 UTC
wicket git commit: WICKET-6399 Dequeuing of Border component with
nested body fails
Repository: wicket
Updated Branches:
refs/heads/master c49b9d663 -> 13fa9f8ff
WICKET-6399 Dequeuing of Border component with nested body fails
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/13fa9f8f
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/13fa9f8f
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/13fa9f8f
Branch: refs/heads/master
Commit: 13fa9f8ffa9e4c8b4b76d730e0b602e1ee2ab1ed
Parents: c49b9d6
Author: Andrea Del Bene <ad...@apache.org>
Authored: Mon Jun 19 16:18:34 2017 +0200
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Mon Jun 19 16:18:34 2017 +0200
----------------------------------------------------------------------
.../java/org/apache/wicket/MarkupContainer.java | 14 +++++++++++++-
.../html/TransparentWebMarkupContainer.java | 8 ++++++++
.../wicket/queueing/ComponentQueueingTest.java | 19 +++++++++++++++++++
3 files changed, 40 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/13fa9f8f/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
index 57ab1c9..a9ffd82 100644
--- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
@@ -1963,7 +1963,7 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
ComponentTag tag = dequeue.takeTag();
// see if child is already added to parent
- Component child = get(tag.getId());
+ Component child = findChildComponent(tag);
if (child == null)
{
@@ -1991,6 +1991,18 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
}
}
+
+ /**
+ * Search the child component for the given tag.
+ *
+ * @param tag
+ * the component tag
+ * @return the child component for the given tag or null if no child can not be found.
+ */
+ protected Component findChildComponent(ComponentTag tag)
+ {
+ return get(tag.getId());
+ }
/**
* Propagates dequeuing to child component.
http://git-wip-us.apache.org/repos/asf/wicket/blob/13fa9f8f/wicket-core/src/main/java/org/apache/wicket/markup/html/TransparentWebMarkupContainer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/TransparentWebMarkupContainer.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/TransparentWebMarkupContainer.java
index 6959914..fcbae86 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/TransparentWebMarkupContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/TransparentWebMarkupContainer.java
@@ -162,4 +162,12 @@ public class TransparentWebMarkupContainer extends WebMarkupContainer implements
}
}
}
+
+ @Override
+ protected Component findChildComponent(ComponentTag tag)
+ {
+ Component childComponent = super.findChildComponent(tag);
+
+ return childComponent != null ? childComponent : resolve(this, null, tag);
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/13fa9f8f/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 fdce742..1e34590 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
@@ -26,6 +26,7 @@ import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.IMarkupResourceStreamProvider;
+import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
@@ -806,6 +807,24 @@ public class ComponentQueueingTest extends WicketTestCase
tester.startPage(page);
}
+
+ @Test
+ public void queueInsideTransparentContainer() throws Exception
+ {
+ TestPage page = new TestPage();
+ page.setPageMarkup("<div wicket:id='transparentContainer'>"
+ + " <div wicket:id='container'>"
+ + " <div wicket:id='child'>"
+ + " </div>"
+ + " </div>"
+ + "</div>");
+
+ page.add(new TransparentWebMarkupContainer("transparentContainer"));
+ page.add(new WebMarkupContainer("container"));
+ page.queue(new WebMarkupContainer("child"));
+
+ tester.startPage(page);
+ }
@Test
public void queueNestedEnclosure()