You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2007/04/17 05:48:53 UTC

svn commit: r529478 - /incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java

Author: ivaynberg
Date: Mon Apr 16 20:48:51 2007
New Revision: 529478

URL: http://svn.apache.org/viewvc?view=rev&rev=529478
Log:
fixed bug: ifeedback components were never attached if they were added to ajax request indirectly

Modified:
    incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java

Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java?view=diff&rev=529478&r1=529477&r2=529478
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java Mon Apr 16 20:48:51 2007
@@ -546,10 +546,13 @@
 		Iterator it;
 
 		// process feedback
-		it = markupIdToComponent.entrySet().iterator();
+
+		// TODO do we need these special pre-attach feedback traversals all over
+		// the place?
+		it = markupIdToComponent.values().iterator();
 		while (it.hasNext())
 		{
-			final Component component = (Component)((Entry)it.next()).getValue();
+			final Component component = (Component)it.next();
 
 			if (component instanceof MarkupContainer)
 			{
@@ -571,6 +574,36 @@
 				((IFeedback)component).updateFeedback();
 			}
 		}
+
+		// we need to attach feedback components here because they are not
+		// attached in MarkupContainer#attachChildren()
+		it = markupIdToComponent.values().iterator();
+		while (it.hasNext())
+		{
+			final Component component = (Component)it.next();
+
+			if (component instanceof IFeedback)
+			{
+				component.attach();
+			}
+
+			if (component instanceof MarkupContainer)
+			{
+				MarkupContainer container = (MarkupContainer)component;
+
+				// collect feedback
+				container.visitChildren(IFeedback.class, new IVisitor()
+				{
+					public Object component(Component component)
+					{
+						component.attach();
+						return IVisitor.CONTINUE_TRAVERSAL;
+					}
+				});
+			}
+
+		}
+
 
 		// attach components
 		it = markupIdToComponent.values().iterator();