有没有办法让Wicket中的DropDownChoice为单个选项元素分配工具提示(例如标题属性)?

我有以下形式的选择框项:

public class SelectBoxItem
{
    private Long id;
    private String label;
    private String description;
}


所有项目均从数据库加载。

我使用ChoiceRenderer配置DropDownChoice组件,以使用id作为键,使用标签作为值。

现在,我将需要配置它以将描述也用作工具提示消息。



我在互联网上只找到this related thread。浏览相关的Wicket类使我得出与作者相同的结论,例如当前的DropDownChoice / ChoiceRenderer类版本可能无法实现。那正确吗?在那种情况下,是否有类似的组件可以允许呢?



(有关我的代码库的更全面描述,请参见my other question,其中我询问了相同上下文中的另一个问题。)

最佳答案

这是我针对这个问题的解决方案。非常感谢Andrea Del Bene的建议。

public class TitledDropDownChoice<T> extends DropDownChoice<T> {

//  ... constructors from superclass ...

@Override
protected void appendOptionHtml(AppendingStringBuffer buffer,
        T choice, int index, String selected) {

    super.appendOptionHtml(buffer, choice, index, selected);

    // converts <option value="foo">bar</option> to
    // <option value="foo" title="bar">bar</option>
    String replString = "value=\"" + getChoiceRenderer()
        .getIdValue(choice, index) + "\"";
    int pos = buffer.indexOf(replString);
    buffer.insert(pos + replString.length(),
        " title=\"" + getChoiceRenderer().getDisplayValue(choice) + "\"");

}

}

10-08 13:06