Author: ivaynberg
Date: Thu Apr 19 15:20:09 2007
New Revision: 530572
URL: http://svn.apache.org/viewvc?view=rev&rev=530572
Log:
throw an error when users add a listview, or other repeaters, to the ajax
request target. hopefully no more "why my listview doesnt update via ajax"
questions.
Modified:
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
Modified:
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java?view=diff&rev=530572&r1=530571&r2=530572
==============================================================================
---
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
(original)
+++
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
Thu Apr 19 15:20:09 2007
@@ -44,6 +44,7 @@
import org.apache.wicket.markup.html.internal.HeaderResponse;
import org.apache.wicket.markup.html.internal.HtmlHeaderContainer;
import org.apache.wicket.markup.parser.filter.HtmlHeaderSectionHandler;
+import org.apache.wicket.markup.repeater.AbstractRepeater;
import org.apache.wicket.protocol.http.WebResponse;
import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.wicket.util.string.Strings;
@@ -304,8 +305,8 @@
"Argument `childCriteria` cannot be
null. If you want to traverse all components use `"
+
Component.class.getName() + ".class` as the value for this argument");
}
-
-
+
+
parent.visitChildren(childCriteria, new Component.IVisitor()
{
@@ -361,6 +362,13 @@
else if (component instanceof Page)
{
throw new IllegalArgumentException("component cannot be
a page");
+ }
+ else if (component instanceof AbstractRepeater)
+ {
+ throw new IllegalArgumentException(
+ "Component "
+ +
component.getClass().getName()
+ + " has been added to
the target. This component is a repeater and cannot be repainted via ajax
directly. Instead add its parent or another markup container higher in the
hieararchy.");
}
markupIdToComponent.put(markupId, component);