You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Martin Grigorov <mg...@apache.org> on 2015/11/05 15:20:42 UTC

Re: wicket git commit: WICKET-6023 small tweak for component queuing for the AbstractRepeater

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, <ad...@apache.org> 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 <ad...@apache.org>
> Authored: Thu Nov 5 15:14:44 2015 +0100
> Committer: Andrea Del Bene <ad...@apache.org>
> 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();
> -
> -       }
>  }
>
>