Hi Andrea,

The change looks like now queueing will work for ListView (because it uses
ListItem), but won't work for other repeaters like RepeatableView,
RefreshingView, Loop, ...

Maybe I miss something but the ticket description doesn't explain much ...
:-/

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Thu, Nov 5, 2015 at 3:15 PM, <[email protected]> wrote:

> Repository: wicket
> Updated Branches:
>   refs/heads/wicket-7.x 75d5b5c0f -> 86f57f3fc
>
>
> WICKET-6023 small tweak for component queuing for the AbstractRepeater
>
>
> Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
> Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/86f57f3f
> Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/86f57f3f
> Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/86f57f3f
>
> Branch: refs/heads/wicket-7.x
> Commit: 86f57f3fcb3b3515f0fb61d38d221628d4abe0ae
> Parents: 75d5b5c
> Author: Andrea Del Bene <[email protected]>
> Authored: Thu Nov 5 15:14:44 2015 +0100
> Committer: Andrea Del Bene <[email protected]>
> Committed: Thu Nov 5 15:14:44 2015 +0100
>
> ----------------------------------------------------------------------
>  .../wicket/markup/html/list/ListItem.java       | 12 ++++++++-
>  .../markup/repeater/AbstractRepeater.java       | 28 --------------------
>  2 files changed, 11 insertions(+), 29 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/86f57f3f/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 68565a5..a3a7da2 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,7 +16,11 @@
>   */
>  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;
>
>  /**
> @@ -28,7 +32,7 @@ import org.apache.wicket.model.IModel;
>   * @param <T>
>   *            Model object type
>   */
> -public class ListItem<T> extends LoopItem implements IGenericComponent<T>
> +public class ListItem<T> extends LoopItem implements
> IGenericComponent<T>, IQueueRegion
>  {
>         private static final long serialVersionUID = 1L;
>
> @@ -97,4 +101,10 @@ public class ListItem<T> extends LoopItem implements
> IGenericComponent<T>
>         {
>                 setDefaultModelObject(object);
>         }
> +
> +       @Override
> +       public DequeueContext newDequeueContext()
> +       {
> +               return new DequeueContext(getMarkup(), this, true);
> +       }
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/86f57f3f/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 25e320a..832196f 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,32 +157,4 @@ 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