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 2010/08/21 00:18:51 UTC

svn commit: r987651 - /wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java

Author: ivaynberg
Date: Fri Aug 20 22:18:50 2010
New Revision: 987651

URL: http://svn.apache.org/viewvc?rev=987651&view=rev
Log:
Form.delegateSubmit: invoke onSubmit() of nested Forms before onSubmit() of enclosing Form
Issue: WICKET-3003

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java?rev=987651&r1=987650&r2=987651&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java Fri Aug 20 22:18:50 2010
@@ -50,8 +50,10 @@ import org.apache.wicket.util.string.Str
 import org.apache.wicket.util.string.interpolator.MapVariableInterpolator;
 import org.apache.wicket.util.upload.FileUploadBase.SizeLimitExceededException;
 import org.apache.wicket.util.upload.FileUploadException;
+import org.apache.wicket.util.visit.ClassVisitFilter;
 import org.apache.wicket.util.visit.IVisit;
 import org.apache.wicket.util.visit.IVisitor;
+import org.apache.wicket.util.visit.Visits;
 import org.apache.wicket.validation.IValidatorAddListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -1224,24 +1226,18 @@ public class Form<T> extends WebMarkupCo
 		}
 
 		// Model was successfully updated with valid data
-		formToProcess.onSubmit();
 
-		// call onSubmit on nested forms
-		formToProcess.visitChildren(Form.class, new IVisitor<Form<?>, Void>()
+		Visits.visitComponentsPostOrder(this, new IVisitor<Form<?>, Void>()
 		{
-			public void component(final Form<?> component, final IVisit<Void> visit)
+			public void component(Form<?> form, IVisit<Void> visit)
 			{
-				Form<?> form = component;
 				if (form.isEnabledInHierarchy() && form.isVisibleInHierarchy())
 				{
+
 					form.onSubmit();
 				}
-				else
-				{
-					visit.dontGoDeeper();
-				}
 			}
-		});
+		}, new ClassVisitFilter(Form.class));
 	}
 
 	/**
@@ -1969,6 +1965,7 @@ public class Form<T> extends WebMarkupCo
 	}
 
 	/** {@inheritDoc} */
+	@Override
 	public void renderHead(IHeaderResponse response)
 	{
 		if (!isRootForm() && isMultiPart())