[ 
https://issues.apache.org/jira/browse/WICKET-7141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18023007#comment-18023007
 ] 

ASF GitHub Bot commented on WICKET-7141:
----------------------------------------

martin-g commented on code in PR #1087:
URL: https://github.com/apache/wicket/pull/1087#discussion_r2380941692


##########
wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java:
##########
@@ -1288,15 +1292,66 @@ protected void 
addDefaultSubmitButtonHandler(IHeaderResponse headerResponse)
                
headerResponse.render(OnEventHeaderItem.forMarkupId(getMarkupId(), "keypress", 
script.toString()));
        }
 
+

Review Comment:
   ```suggestion
   ```



##########
wicket-core-tests/src/test/java/org/apache/wicket/markup/html/form/FormVisitTest.java:
##########
@@ -355,6 +393,32 @@ public void updateFormComponentModelsInPostorder()
                assertTrue(page.innerField.updateModelOrder < 
page.outerField.updateModelOrder);
        }
 
+       @Test
+       public void callInnerFormOnAfterUpdateFormComponentModels()
+       {
+               tester.newFormTester("outerForm").submit();
+
+               
assertTrue(page.innerForm.onAfterUpdateFormComponentModelsCalled);
+       }
+
+       @Test
+       public void dontCallInnerFormOnAfterUpdateFormComponentModels()
+       {
+               page.innerForm.wantSubmitOnParentFormSubmit = false;
+               tester.newFormTester("outerForm").submit();
+
+               
assertFalse(page.innerForm.onAfterUpdateFormComponentModelsCalled);
+       }
+
+       @Test
+       public void callFormOnAfterUpdateFormComponentModelsInPostorder()

Review Comment:
   ```suggestion
        public void callFormOnAfterUpdateFormComponentModelsInPostOrder()
   ```



##########
wicket-core-tests/src/test/java/org/apache/wicket/markup/html/form/FormVisitTest.java:
##########
@@ -329,6 +341,32 @@ public void validateFormComponentsInPostorder()
 
                assertTrue(page.innerField.onValidCallOrder < 
page.outerField.onValidCallOrder);
        }
+       
+       @Test
+       public void callInnerFormOnBeforeUpdateFormComponentModels()
+       {
+               tester.newFormTester("outerForm").submit();
+
+               
assertTrue(page.innerForm.onBeforeUpdateFormComponentModelsCalled);
+       }
+
+       @Test
+       public void dontCallInnerFormOnBeforeUpdateFormComponentModels()
+       {
+               page.innerForm.wantSubmitOnParentFormSubmit = false;
+               tester.newFormTester("outerForm").submit();
+
+               
assertFalse(page.innerForm.onBeforeUpdateFormComponentModelsCalled);
+       }
+
+       @Test
+       public void callFormOnBeforeUpdateFormComponentModelsInPostorder()

Review Comment:
   ```suggestion
        public void callFormOnBeforeUpdateFormComponentModelsInPostOrder()
   ```





> Add hook method afterUpdateFormComponentModels() in Form process
> ----------------------------------------------------------------
>
>                 Key: WICKET-7141
>                 URL: https://issues.apache.org/jira/browse/WICKET-7141
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket-core
>    Affects Versions: 10.3.0
>            Reporter: Florian Lacreuse
>            Priority: Minor
>              Labels: form
>         Attachments: form-process-hook.patch
>
>
> In my team, we need to be able to do specific actions once the update form 
> component models phase is complete, at the parent form level.
> The process form algorithm provides a hook method 
> {{beforeUpdateFormComponentModels()}} but it's way too early.
> Until Wicket 10.2.0 (included), we get around the problem by overriding the 
> {{onValidateModelObjects()}} from the parent form.
> However since Wicket 10.3.0 and WICKET-3899, this small hack no longer works 
> due to new postorder processing (nested forms come first).
> Anyway, we think this "after" hook method can be useful for many reasons, 
> just like the "before" one.
> What do you think?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to