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
Priority: Minor
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.