You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2013/03/05 15:31:46 UTC
git commit: WICKET-5076 call #onSubmit() on correct forms
Updated Branches:
refs/heads/wicket-1.5.x 3ed04d05c -> a354b86af
WICKET-5076 call #onSubmit() on correct forms
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/a354b86a
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/a354b86a
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/a354b86a
Branch: refs/heads/wicket-1.5.x
Commit: a354b86af914783637d2cbbdce0dcbe07154c73a
Parents: 3ed04d0
Author: svenmeier <sv...@apache.org>
Authored: Tue Mar 5 15:31:11 2013 +0100
Committer: svenmeier <sv...@apache.org>
Committed: Tue Mar 5 15:31:11 2013 +0100
----------------------------------------------------------------------
.../org/apache/wicket/markup/html/form/Form.java | 27 +++++++++------
1 files changed, 16 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/a354b86a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
index d41d4ae..31df263 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
@@ -53,6 +53,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.settings.IApplicationSettings;
import org.apache.wicket.util.lang.Args;
import org.apache.wicket.util.lang.Bytes;
+import org.apache.wicket.util.lang.Generics;
import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.wicket.util.string.PrependingStringBuffer;
import org.apache.wicket.util.string.Strings;
@@ -1213,27 +1214,31 @@ public class Form<T> extends WebMarkupContainer implements IFormSubmitListener
{
final Form<?> processingForm = findFormToProcess(submittingComponent);
-
- // process submitting component (if specified)
- if (submittingComponent != null)
- {
- // invoke submit on component
- submittingComponent.onSubmit();
- }
-
- // invoke Form#onSubmit(..) going from innermost to outermost
+ // collect all forms innermost to outermost before any hierarchy is changed
+ final List<Form<?>> forms = Generics.newArrayList(3);
Visits.visitPostOrder(processingForm, new IVisitor<Form<?>, Void>()
{
public void component(Form<?> form, IVisit<Void> visit)
{
if (form.isEnabledInHierarchy() && form.isVisibleInHierarchy())
{
-
- form.onSubmit();
+ forms.add(form);
}
}
}, new ClassVisitFilter(Form.class));
+ // process submitting component (if specified)
+ if (submittingComponent != null)
+ {
+ // invoke submit on component
+ submittingComponent.onSubmit();
+ }
+
+ // invoke Form#onSubmit(..)
+ for (Form<?> form : forms)
+ {
+ form.onSubmit();
+ }
if (submittingComponent != null)
{