You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@click.apache.org by "Bob Schellink (JIRA)" <ji...@apache.org> on 2009/03/01 19:17:55 UTC

[JIRA] Commented: (CLK-497) FieldSet isDisabled and isReadonly methods broken

    [ http://issues.apache.org/click/browse/CLK-497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=11711#action_11711 ] 

Bob Schellink commented on CLK-497:
-----------------------------------

Hi James,

Though about this a bit today, but ultimately such a change is moving too far away from Click's design and the 80/20 rule. The ability to block/cascade state seems like an edge case, not the norm.

The current impl covers the common case where disabling the parent will disable the child controls. However if there is a need for a more advanced approach, one can create a custom Form / FieldSet / Container that overrides setDisabled/setReadonly and push/block the state:

kind regards

bob

> FieldSet isDisabled and isReadonly methods broken
> -------------------------------------------------
>
>                 Key: CLK-497
>                 URL: http://issues.apache.org/click/browse/CLK-497
>             Project: Click
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 2.0.1
>         Environment: Windows XP, Java 6
>            Reporter: James P Brown
>         Attachments: FieldSet_isDisabled_isReadonly_bug.zip
>
>
> The FieldSet is supposed to force its child components to be disabled/readonly when it is set to disabled/readonly. I did not observe this when I attempted to create a FieldSet with a child component.
> I believe the code to support this is not working as anticipated. The Field class has modified methods for isDisabled/isReadonly that specifically check if the parent component (i.e. container) is an instanceof FieldSet (or Form, which is working AFAIK). The problem is that the design of FieldSet relies on an instance of its private inner class FieldSet.InnerContainerField for managing those child elements. When I step through the code in debug mode, the class instance is of this inner class type (InnerContainerField) not FieldSet. Since InnerContainerField is not a type of FieldSet, the subsequent logic is ignored.

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