Description
1. Create any components that is derived from MarkupContainer, for example, create Panel.
2. Put some components to the Panel, for example, TextInput, Label etc.
3. Call panel.setEnabled(false)
Result: all controls on panel are still enabled.
Notes: after some investigation I found that MarkupContainer doesn't override setEnabled and therefore it cannot enable/disable components stored in the container.
Workaround: manually disable all components that are displayed on the panel, for example:
public void setEnabledForChildren(boolean enabled)
private void setEnabledRecursive(MarkupContainer container, boolean enabled) {
Iterator<? extends Component> iterator = container.iterator();
while (iterator.hasNext()) {
Component component = iterator.next();
component.setEnabled(enabled);
if (component instanceof MarkupContainer)
{ setEnabledRecursive((MarkupContainer) component, enabled); } }
}
I think that MarkupContainer must be responsible for disabling/enabling child components.
Attachments
Attachments
Issue Links
- is related to
-
WICKET-1619 PagingNavigator.setEnabled(false) doesn't work
- Closed