This is an automated email from the ASF dual-hosted git repository.

pedro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git


The following commit(s) were added to refs/heads/master by this push:
     new 61d67f762e WICKET-7134 Form code refactoring
61d67f762e is described below

commit 61d67f762e61447d781914fa41629aa75b05a972
Author: Pedro Santos <[email protected]>
AuthorDate: Mon Nov 25 00:41:16 2024 -0300

    WICKET-7134 Form code refactoring
    
    - centralizing form processing code inside the visit
    - replacing form#isSubmitted with form#isVisible/EnabledInHierarchy
---
 .../org/apache/wicket/markup/html/form/Form.java   | 80 ++++------------------
 1 file changed, 13 insertions(+), 67 deletions(-)

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 f8dcaf072d..0a9326ad7c 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
@@ -1323,7 +1323,7 @@ public class Form<T> extends WebMarkupContainer
                // collect all forms innermost to outermost before any 
hierarchy is changed
                final List<Form<?>> forms = Generics.newArrayList(3);
                visitFormsPostOrder(processingForm, (form, visit) -> {
-                       if (form.isSubmitted())
+                       if (form.isVisibleInHierarchy() && 
form.isEnabledInHierarchy())
                        {
                                forms.add(form);
                        }
@@ -1555,22 +1555,9 @@ public class Form<T> extends WebMarkupContainer
         * Mark each form component on this form and on nested forms valid.
         */
        protected final void markFormComponentsValid()
-       {
-               markNestedFormComponentsValid();
-               internalMarkFormComponentsValid();
-       }
-
-       /**
-        * Mark each form component on nested form valid.
-        */
-       private void markNestedFormComponentsValid()
        {
                visitFormsPostOrder(this, (form, visit) -> {
-                       if (form == Form.this)
-                       {
-                               return;
-                       }
-                       if (form.isSubmitted())
+                       if (form.isVisibleInHierarchy() && 
form.isEnabledInHierarchy())
                        {
                                form.internalMarkFormComponentsValid();
                        }
@@ -1877,24 +1864,9 @@ public class Form<T> extends WebMarkupContainer
         * @see org.apache.wicket.markup.html.form.FormComponent#updateModel()
         */
        protected final void updateFormComponentModels()
-       {
-               updateNestedFormComponentModels();
-               internalUpdateFormComponentModels();
-       }
-
-       /**
-        * Update the model of all components on nested forms.
-        *
-        * @see #updateFormComponentModels()
-        */
-       private void updateNestedFormComponentModels()
        {
                visitFormsPostOrder(this, (form, visit) -> {
-                       if (form == Form.this)
-                       {
-                               return;
-                       }
-                       if (form.isSubmitted())
+                       if (form.isVisibleInHierarchy() && 
form.isEnabledInHierarchy())
                        {
                                form.internalUpdateFormComponentModels();
                        }
@@ -1922,14 +1894,15 @@ public class Form<T> extends WebMarkupContainer
         */
        protected final void validate()
        {
-               // since this method can be called directly by users, this 
additional check is needed
-               if (isEnabledInHierarchy() && isVisibleInHierarchy())
-               {
-                       validateNestedForms();
-                       validateComponents();
-                       validateFormValidators();
-                       onValidate();
-               }
+               visitFormsPostOrder(this, (form, visit) -> {
+                       // since this method can be called directly by users, 
this additional check is needed
+                       if (form.isVisibleInHierarchy() && 
form.isEnabledInHierarchy())
+                       {
+                               form.validateComponents();
+                               form.validateFormValidators();
+                               form.onValidate();
+                       }
+               });
        }
 
        /**
@@ -1947,16 +1920,11 @@ public class Form<T> extends WebMarkupContainer
        private void internalOnValidateModelObjects()
        {
                visitFormsPostOrder(this, (form, visit) -> {
-                       if (form == Form.this)
-                       {
-                               return;
-                       }
-                       if (form.isSubmitted())
+                       if (form.isVisibleInHierarchy() && 
form.isEnabledInHierarchy())
                        {
                                form.onValidateModelObjects();
                        }
                });
-               onValidateModelObjects();
        }
 
        /**
@@ -2053,28 +2021,6 @@ public class Form<T> extends WebMarkupContainer
                }
        }
 
-       /**
-        * Validates {@link FormComponent}s as well as {@link IFormValidator}s 
in nested {@link Form}s.
-        *
-        * @see #validate()
-        */
-       private void validateNestedForms()
-       {
-               visitFormsPostOrder(this, (form, visit) -> {
-                       if (form == Form.this)
-                       {
-                               return;
-                       }
-
-                       if (form.isSubmitted())
-                       {
-                               form.validateComponents();
-                               form.validateFormValidators();
-                               form.onValidate();
-                       }
-               });
-       }
-
        /**
         * Allows to customize input names of form components inside this form.
         *

Reply via email to