[ 
http://issues.apache.org/click/browse/CLK-497?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James P Brown updated CLK-497:
------------------------------

    Attachment: FieldSet_isDisabled_isReadonly_bug.zip

I am attaching source code changes I made to the Field and FieldSet classes to 
address this defect (and the svn patch files for a project level diff), and 
modified FieldSetTest and FormTest unit test classes to test bug and fix.

I do not believe this to be the best way to address the problem, as I turned 
the private inner class into a public one, and added two methods to expose the 
isDisabled and isReadonly data of the outer class FieldSet. However, this is a 
drastic measure that clearly breaks the intended design of the inner class. I 
believe someone more familiar with this code will have to sort this out.

Nonetheless, I believe my changes to the unit test classes to be of value going 
forward, regardless of the true solution.

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

Reply via email to