[ 
https://issues.apache.org/jira/browse/WICKET-2935?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Carl-Eric Menzel updated WICKET-2935:
-------------------------------------

    Attachment: 0002-fixed-FormComponent-erroneously-generating-empty-raw.patch

A patch against Wicket 1.4.9 that will fix this issue. It changes 
FormComponent#inputChanged as proposed in the description, and adds a unit test 
that verifies the new, correct behavior.

> FormComponent#inputChanged does not properly check enabled/disabled status of 
> the component
> -------------------------------------------------------------------------------------------
>
>                 Key: WICKET-2935
>                 URL: https://issues.apache.org/jira/browse/WICKET-2935
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4.9
>            Reporter: Carl-Eric Menzel
>         Attachments: 
> 0002-fixed-FormComponent-erroneously-generating-empty-raw.patch, 
> formdisabled-checkbox-quickstart.tar.gz
>
>
> We noticed this when we had a panel that contains a number of CheckBox 
> components. Some of these CheckBoxes were checked, the underlying model 
> boolean was true. The panel itself was set to disabled (isEnabled returned 
> false), which correctly caused the checkboxes to be rendered with the 
> attribute disabled="disabled". On a form submit, however, the previously 
> checked boxes were rendered unchecked. Only the internal state of the 
> CheckBox and the rendered HTML changed - the model value was not touched.
> After some debugging, I discovered the problem in FormComponent#inputChanged. 
> That method only checks for isEnabled(), not isEnabledInHierarchy(). Since 
> the CheckBox components themselves were enabled, they were accepting input. 
> The browser, on the other hand, did not send anything, since the checkboxes 
> were marked as disabled. This caused the CheckBox to receive null as its 
> input, which it interprets as false/unchecked. The model was not affected 
> since FormModelUpdateVisitor correctly checks isEnabledInHierarchy().
> Solution: FormComponent#inputChanged needs to call isEnabledInHierarchy 
> instead of isEnabled.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to