[
https://issues.apache.org/jira/browse/WICKET-7134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pedro Santos updated WICKET-7134:
---------------------------------
Description:
Form code has a few places where nested forms processing is done inside a visit
while the current form is processed outside that visit. For instance:
{code:java}
protected final void markFormComponentsValid(){
markNestedFormComponentsValid();
internalMarkFormComponentsValid();
}
private void markNestedFormComponentsValid() {
visitFormsPostOrder(this, (form, visit) -> {
if (form == Form.this) {
return;
}
if (form.isSubmitted()) {
form.internalMarkFormComponentsValid();
}
});
}
{code}
Those pieces of code can be simplified by processing all forms inside the
visit. Also, at the point Form#isSubmitted test is done, the form isn't
submitted yet. This test is there to replace the Form#isVisible/Enabled one,
but without correctly communicating its intent to the code maintainer.
was:
Form code has a few places where nested form processing is done by a visit
while the current form is processed outside that visit. For instance:
{code:java}
protected final void markFormComponentsValid(){
markNestedFormComponentsValid();
internalMarkFormComponentsValid();
}
private void markNestedFormComponentsValid() {
visitFormsPostOrder(this, (form, visit) -> {
if (form == Form.this) {
return;
}
if (form.isSubmitted()) {
form.internalMarkFormComponentsValid();
}
});
}
{code}
Those pieces of code can be simplified by moving the entire processing to the
visit. Also, at the point Form#isSubmitted test is done, the form isn't
submitted yet. The test is just there to replace the form.isVisible/Enabled
one, but without correctly communicating its function to the code maintainer.
> To refactor Form processing code
> --------------------------------
>
> Key: WICKET-7134
> URL: https://issues.apache.org/jira/browse/WICKET-7134
> Project: Wicket
> Issue Type: Improvement
> Reporter: Pedro Santos
> Priority: Major
>
> Form code has a few places where nested forms processing is done inside a
> visit while the current form is processed outside that visit. For instance:
>
> {code:java}
> protected final void markFormComponentsValid(){
> markNestedFormComponentsValid();
> internalMarkFormComponentsValid();
> }
> private void markNestedFormComponentsValid() {
> visitFormsPostOrder(this, (form, visit) -> {
> if (form == Form.this) {
> return;
> }
> if (form.isSubmitted()) {
> form.internalMarkFormComponentsValid();
> }
> });
> }
> {code}
>
> Those pieces of code can be simplified by processing all forms inside the
> visit. Also, at the point Form#isSubmitted test is done, the form isn't
> submitted yet. This test is there to replace the Form#isVisible/Enabled one,
> but without correctly communicating its intent to the code maintainer.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)