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/01/16 11:39:48 UTC

wicket git commit: WICKET-6303 renderHead method of a Behavior added to a Border body is not called

Repository: wicket
Updated Branches:
  refs/heads/master 0dd706949 -> 06a0f4a9a


WICKET-6303 renderHead method of a Behavior added to a Border body is
not called

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/06a0f4a9
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/06a0f4a9
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/06a0f4a9

Branch: refs/heads/master
Commit: 06a0f4a9a73c7d5b6d50a88a0d8003557a460f83
Parents: 0dd7069
Author: Andrea Del Bene <ad...@apache.org>
Authored: Mon Jan 16 12:39:32 2017 +0100
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Mon Jan 16 12:39:32 2017 +0100

----------------------------------------------------------------------
 .../java/org/apache/wicket/MarkupContainer.java | 20 ++++++++++++--
 .../wicket/markup/html/border/Border.java       | 29 ++++++--------------
 2 files changed, 26 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/06a0f4a9/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 346821a..c2d5042 100644
--- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
@@ -2030,14 +2030,21 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
 			((IQueueRegion)child).dequeue();			
 		}
 		
+		if (childType == ChildToDequeueType.BORDER) 
+		{
+			Border childContainer = (Border)child;
+			// propagate dequeuing to border's body
+            MarkupContainer body = childContainer.getBodyContainer();
+			
+			dequeueChildrenContainer(dequeue, body);
+		}
+		
 		if (childType == ChildToDequeueType.MARKUP_CONTAINER)
 		{
 			// propagate dequeuing to containers
 			MarkupContainer childContainer = (MarkupContainer)child;
 			
-			dequeue.pushContainer(childContainer);
-			childContainer.dequeue(dequeue);
-			dequeue.popContainer();			
+			dequeueChildrenContainer(dequeue, childContainer);			
 		}
 		
 		if (childType == ChildToDequeueType.NULL || 
@@ -2059,6 +2066,13 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
 		throw new IllegalStateException(String.format("Could not find the closing tag for '%s'", tag));
 	}
 
+	private void dequeueChildrenContainer(DequeueContext dequeue, MarkupContainer child) 
+	{
+		dequeue.pushContainer(child);
+		child.dequeue(dequeue);
+		dequeue.popContainer();
+	}
+
     /** @see IQueueRegion#newDequeueContext() */
 	public DequeueContext newDequeueContext()
 	{

http://git-wip-us.apache.org/repos/asf/wicket/blob/06a0f4a9/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java
index 15c9dbe..b11df1a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java
@@ -169,18 +169,7 @@ public abstract class Border extends WebMarkupContainer implements IComponentRes
 		super(id, model);
 
 		body = new BorderBodyContainer(id + "_" + BODY);
-	}
-	
-	@Override
-	protected void onInitialize()
-	{
-		super.onInitialize();
-		
-		//if body has not been assigned yet, we queue it
-		if (body.getParent() == null)
-		{
-			dequeue();
-		}
+		queueToBorder(body);
 	}
 	
 	/**
@@ -319,13 +308,6 @@ public abstract class Border extends WebMarkupContainer implements IComponentRes
 	public Border addToBorder(final Component... children)
 	{
 		super.add(children);
-		
-		//if body has not been assigned yet, we queue it
-		if (body.getParent() == null)
-		{
-			dequeue();
-		}
-		
 		return this;
 	}
 
@@ -336,6 +318,13 @@ public abstract class Border extends WebMarkupContainer implements IComponentRes
 		return this;
 	}
 	
+	@Override
+	protected void onConfigure() 
+	{
+		super.onConfigure();
+		dequeue();
+	}
+	
 	/**
 	 * Queues children components to the Border itself
 	 *
@@ -669,8 +658,8 @@ public abstract class Border extends WebMarkupContainer implements IComponentRes
 		{
 			//synch the tag id with the one of the body component
 			tag.setId(body.getId());
-			return body;
 		}
+		
 		return super.findComponentToDequeue(tag);
 	}