Author: pete
Date: Thu May 12 17:32:38 2011
New Revision: 1102395
URL: http://svn.apache.org/viewvc?rev=1102395&view=rev
Log:
WICKET-3705 AjaxSubmit in modal window doesn't call form.onSubmit() before
ending request
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java?rev=1102395&r1=1102394&r2=1102395&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
Thu May 12 17:32:38 2011
@@ -1131,23 +1131,37 @@ public class Form<T> extends WebMarkupCo
*/
protected void delegateSubmit(IFormSubmitter submittingComponent)
{
- // when the given submitting component is not null, it means
that it was the
- // submitting component
+ final Form<?> processingForm;
+
+ // process submitting component (if specified)
if (submittingComponent != null)
{
- // use the form which the submittingComponent has
submitted for further processing
+ // use form of submitting component for processing
+ processingForm = submittingComponent.getForm();
+
+ if(processingForm == null)
+ {
+ throw new IllegalStateException("submitting
component must not return 'null' on getForm()");
+ }
+
+ // invoke submit on component
submittingComponent.onSubmit();
}
-
- // Model was successfully updated with valid data
-
- Visits.visitPostOrder(this, new IVisitor<Form<?>, Void>()
+ else
+ {
+ processingForm = this;
+ }
+
+ // invoke submit on top-level form
+ processingForm.onSubmit();
+
+ // process active child forms
+ Visits.visitChildren(processingForm, new IVisitor<Form<?>,
Void>()
{
public void component(Form<?> form, IVisit<Void> visit)
{
if (form.isEnabledInHierarchy() &&
form.isVisibleInHierarchy())
{
-
form.onSubmit();
}
}