You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Szádeczky-Kardoss Szabolcs (JIRA)" <ji...@apache.org> on 2010/03/14 22:01:27 UTC

[jira] Closed: (WICKET-2776) Enhancing RadioChoice input items with individual title and css class attributes

     [ https://issues.apache.org/jira/browse/WICKET-2776?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Szádeczky-Kardoss Szabolcs closed WICKET-2776.
----------------------------------------------

    Resolution: Fixed

> Enhancing RadioChoice input items with individual title and css class attributes
> --------------------------------------------------------------------------------
>
>                 Key: WICKET-2776
>                 URL: https://issues.apache.org/jira/browse/WICKET-2776
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket
>    Affects Versions: 1.4.7
>            Reporter: Szádeczky-Kardoss Szabolcs
>            Assignee: Juergen Donnerstag
>            Priority: Minor
>             Fix For: 1.4.8, 1.5-M1
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> Wicket is a great framework based on an excellent idea. It is a joy to work with. There are several existing components and most of them are very usable and customizable as much as possible, however there are still a few places for improvement. One of those is org.apache.wicket.markup.html.form.RadioChoice, where it is currently not possible to set HTML title and class attributes for the individual input tags. This would be a great feature for some client-side javascript frameworks, and in my case the JQuery star-rating plugin is even hard to use without these. For this purpose I have created my own private alternative for this component, but it would be good to have it included in wicket, so that others can benefit too.
> See below the changes I have performed to enable this feature! Please note that all changes are made so that current behavior is not changed only new optional behavior is added.
> Changes in method onComponentTagBody(...)
>                 ...
>                 // Add radio tag
>                 String title = getTitle(index, choice);
>                 String cssClass = getCssClass(index, choice);
>                 buffer.append("<input name=\"").append(getInputName()).append("\" type=\"radio\"");
>                 if (title != null)
>                     buffer.append(" title=\"").append(title).append("\"");
>                 if (cssClass != null)
>                     buffer.append(" class=\"").append(cssClass).append("\"");
>                 buffer.append((isSelected(choice, index, selected) ? " checked=\"checked\"" : ""));
>                 buffer.append((enabled ? "" : " disabled=\"disabled\""));
>                 buffer.append(" value=\"").append(id).append("\" id=\"").append(idAttr)
>                         .append("\"");
>                 ...
> Added two new methods:
>     /**
>      * Returns the title attribute to be output for the input tag with the given index and choice
>      * value. By default this returns null, and so the title attribute won't be set, but this can be
>      * overridden.
>      * 
>      * @param index
>      * @param choice
>      * @return title attribute to be used for the given input tag
>      */
>     protected String getTitle(int index, T choice) {
>         return null;
>     }
>     /**
>      * Returns the CSS class attribute to be output for the input tag with the given index and
>      * choice value. By default this returns null, and so the class attribute won't be set, but this
>      * can be overridden.
>      * 
>      * @param index
>      * @param choice
>      * @return CSS class attribute to be used for the given input tag
>      */
>     protected String getCssClass(int index, T choice) {
>         return null;
>     }

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