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 <[email protected]>
Authored: Sat Nov 7 21:20:26 2015 +0100
Committer: Andrea Del Bene <[email protected]>
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();
+
+       }
 }

Reply via email to