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
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.