Updated Branches:
  refs/heads/master 681ac4e2c -> b26284d27

WICKET-5085 InlineEnclosure are piling up on each render

Use the loopitem index when creating an id for InlineEnclosure in repeater


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

Branch: refs/heads/master
Commit: b26284d272ff627d0521fa31f8a69f2e8d9338c2
Parents: 681ac4e
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Sun Apr 28 13:55:32 2013 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Sun Apr 28 13:55:32 2013 +0200

----------------------------------------------------------------------
 .../parser/filter/InlineEnclosureHandler.java      |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/b26284d2/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
index 507339b..181c91d 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
@@ -27,6 +27,7 @@ import org.apache.wicket.markup.MarkupResourceStream;
 import org.apache.wicket.markup.MarkupStream;
 import org.apache.wicket.markup.WicketTag;
 import org.apache.wicket.markup.html.internal.InlineEnclosure;
+import org.apache.wicket.markup.html.list.LoopItem;
 import org.apache.wicket.markup.parser.AbstractMarkupFilter;
 import org.apache.wicket.markup.resolver.IComponentResolver;
 import org.apache.wicket.util.string.Strings;
@@ -65,10 +66,10 @@ public final class InlineEnclosureHandler extends 
AbstractMarkupFilter
        private Stack<ComponentTag> enclosures;
 
        /**
-        * InlinceEnclosures are not removed after render as other 
auto-components,
+        * InlineEnclosures are not removed after render as other 
auto-components,
         * thus they have to have a stable id.
         */
-       private int counter;
+       private static int counter;
 
        /**
         * Construct.
@@ -205,6 +206,11 @@ public final class InlineEnclosureHandler extends 
AbstractMarkupFilter
                if (Strings.isEmpty(inlineEnclosureChildId) == false)
                {
                        String id = tag.getId();
+                       if (container instanceof LoopItem)
+                       {
+                               LoopItem item = (LoopItem) container;
+                               id = id + '_' + item.getIndex();
+                       }
 
                        // Yes, we handled the tag
                        return new InlineEnclosure(id, inlineEnclosureChildId);

Reply via email to