You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mo...@apache.org on 2015/11/08 18:15:45 UTC

[46/50] wicket git commit: Revert "WICKET-6023 small tweak for component queuing for the AbstractRepeater"

Revert "WICKET-6023 small tweak for component queuing for the AbstractRepeater"

This reverts commit 2bab2be8c4376a857423486e462a9c39786ecf5e.


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

Branch: refs/heads/lambdas
Commit: 8ea6acaedbaf7f1d2f756bcadb3eeecd53e42066
Parents: 3269157
Author: Andrea Del Bene <ad...@apache.org>
Authored: Sat Nov 7 21:20:26 2015 +0100
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Sat Nov 7 21:20:26 2015 +0100

----------------------------------------------------------------------
 .../wicket/markup/html/list/ListItem.java       | 12 +--------
 .../markup/repeater/AbstractRepeater.java       | 28 ++++++++++++++++++++
 2 files changed, 29 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/8ea6acae/wicket-core/src/main/java/org/apache/wicket/markup/html/list/ListItem.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/list/ListItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/list/ListItem.java
index a3a7da2..68565a5 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/list/ListItem.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/list/ListItem.java
@@ -16,11 +16,7 @@
  */
 package org.apache.wicket.markup.html.list;
 
-import org.apache.wicket.DequeueContext;
 import org.apache.wicket.IGenericComponent;
-import org.apache.wicket.IQueueRegion;
-import org.apache.wicket.markup.IMarkupFragment;
-import org.apache.wicket.markup.Markup;
 import org.apache.wicket.model.IModel;
 
 /**
@@ -32,7 +28,7 @@ import org.apache.wicket.model.IModel;
  * @param <T>
  *            Model object type
  */
-public class ListItem<T> extends LoopItem implements IGenericComponent<T>, IQueueRegion
+public class ListItem<T> extends LoopItem implements IGenericComponent<T>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -101,10 +97,4 @@ public class ListItem<T> extends LoopItem implements IGenericComponent<T>, IQueu
 	{
 		setDefaultModelObject(object);
 	}
-	
-	@Override
-	public DequeueContext newDequeueContext()
-	{
-		return new DequeueContext(getMarkup(), this, true);
-	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ea6acae/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java b/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
index 832196f..25e320a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
@@ -157,4 +157,32 @@ public abstract class AbstractRepeater extends WebMarkupContainer
 	 * Callback to let the repeater know it should populate itself with its items.
 	 */
 	protected abstract void onPopulate();
+
+	@Override
+	public void dequeue(DequeueContext dequeue)
+	{
+		if (size() > 0)
+		{
+			// essentially what we do is for every child replace the repeater with the child in
+			// dequeue container stack and run the dequeue on the child. we also take care to reset
+			// the state of the dequeue context after we process every child.
+
+			Bookmark bookmark = dequeue.save();
+
+			for (Component child : this)
+			{
+				if (child instanceof MarkupContainer)
+				{
+					dequeue.popContainer(); // pop the repeater
+					MarkupContainer container = (MarkupContainer) child;
+					dequeue.pushContainer(container);
+					container.dequeue(dequeue);
+					dequeue.restore(bookmark);
+				}
+			}
+		}
+
+		dequeue.skipToCloseTag();
+
+	}
 }