@SuppressWarnings("unchecked")
@Override
public void render(Context context, ListModel value, SafeHtmlBuilder sb, String id) {
setOptions(value);
SafeHtmlBuilder sbDelegate = new SafeHtmlBuilder();
delegate.render(context, renderer.render((T) value.getSelectedItem()), sbDelegate);
String select = sbDelegate.toSafeHtml().asString();
select = select.replaceFirst(PATTERN_SELECT, PATTERN_SELECT + " id=\"" + id + "\"");
if (value.getIsChangable()) {
sb.append(SafeHtmlUtils.fromTrustedString(select));
} else {
sb.appendHtmlConstant(select.replaceFirst(PATTERN_SELECT, REPLACEMENT_SELECT));
}
}