You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2014/04/25 11:03:36 UTC
[2/2] git commit: WICKET-5553 When using an Ajax request to display
initially hidden components inside inline enclosures,
only the first one appears.
WICKET-5553 When using an Ajax request to display initially hidden components inside inline enclosures, only the first one appears.
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/197906d5
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/197906d5
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/197906d5
Branch: refs/heads/wicket-6.x
Commit: 197906d5217dd205280394ad74955fa9a449ce1e
Parents: 83511b7
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Fri Apr 25 12:03:09 2014 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Fri Apr 25 12:03:09 2014 +0300
----------------------------------------------------------------------
.../protocol/http/AjaxEnclosureListener.java | 24 ++++++++++++--------
1 file changed, 14 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/197906d5/wicket-core/src/main/java/org/apache/wicket/protocol/http/AjaxEnclosureListener.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/AjaxEnclosureListener.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/AjaxEnclosureListener.java
index f2dbfcb..275c0ad 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/AjaxEnclosureListener.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/AjaxEnclosureListener.java
@@ -16,6 +16,9 @@
*/
package org.apache.wicket.protocol.http;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import org.apache.wicket.Component;
@@ -67,31 +70,32 @@ public class AjaxEnclosureListener implements AjaxRequestTarget.IListener
@Override
public void onBeforeRespond(final Map<String, Component> map, final AjaxRequestTarget target)
{
- String key = target.getPage().visitChildren(InlineEnclosure.class, new IVisitor<InlineEnclosure, String>()
+ final List<String> keysToRemove = new ArrayList<String>();
+
+ target.getPage().visitChildren(InlineEnclosure.class, new IVisitor<InlineEnclosure, Void>()
{
@Override
- public void component(final InlineEnclosure enclosure, final IVisit<String> visit)
+ public void component(final InlineEnclosure enclosure, final IVisit<Void> visit)
{
- for (Map.Entry<String, Component> entry : map.entrySet())
+ Iterator<Map.Entry<String, Component>> entriesItor = map.entrySet().iterator();
+ while (entriesItor.hasNext())
{
- String key = entry.getKey();
+ Map.Entry<String, Component> entry = entriesItor.next();
+ String componentId = entry.getKey();
Component component = entry.getValue();
-
if (isControllerOfEnclosure(component, enclosure))
{
- // update the visibility of the enclosure
enclosure.updateVisibility();
-
- // add enclosure to Ajax target
target.add(enclosure);
- visit.stop(key);
+ visit.dontGoDeeper();
+ keysToRemove.add(componentId);
break;
}
}
}
});
- if (key != null)
+ for (String key : keysToRemove)
{
map.remove(key);
}