click-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bob Schellink (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CLK-744) Select control's setValue is not usable due to insufficient wrapping
Date Sun, 09 Jan 2011 12:13:57 GMT

    [ https://issues.apache.org/jira/browse/CLK-744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12979311#action_12979311
] 

Bob Schellink commented on CLK-744:
-----------------------------------

Actually I've fixed Iterable to behave like a List, meaning Option and OptionGroup.

Strings might be beneficial to the developer but not to the maintainer. How will the label
be rendered? It will depend on how Select interprets it. Using an Option there is one thing
less for the maintainer to worry about. This leads to a Stronger codebase which is a good
thing.

The add methods predates DP and not much we can do about it unless we deprecate them at some
stage.

> Select control's setValue is not usable due to insufficient wrapping
> --------------------------------------------------------------------
>
>                 Key: CLK-744
>                 URL: https://issues.apache.org/jira/browse/CLK-744
>             Project: Click
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 2.3.0-M1, 2.2.0
>            Reporter: Sander van Grieken
>         Attachments: SelectTestPage.java
>
>
> When calling setValue on a Select instance, it bombs out while rendering, regardless
whether a String or an Option is passed.
> Passing an Option instance causes it to be 'toString'-ed as an Object (i.e. 'org.apache.click.control.Option@1c154a3')
when retrieving the selected value again.
> Passing a String causes it to throw a java.lang.IllegalArgumentException: Select option
class not instance of Option or OptionGroup: java.lang.String
> at org.apache.click.control.Select.render(Select.java:998)
> I have modified the render(HtmlStringBuffer buffer) method in Select.java to additionally
check for String instances, and in that case wrap it into an Option, and that works fine.
>                 if (object instanceof String) {
>                 	Option option = new Option(object);
>                 	option.render(this, buffer);
>                 } else ...
> The setValue method should probably be overridden from Field to also support the Option
case

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


Mime
View raw message