Turns out there isn't any, but we've written a renderer so it would make one:
Code: Select all
public class CaptionEnabledSelectManyMenuRenderer extends SelectManyMenuRenderer {
@Override
protected void encodeMarkup(final FacesContext context, final SelectManyMenu menu) throws IOException {
final ResponseWriter writer = context.getResponseWriter();
writer.startElement("div", null);
writer.writeAttribute("class", "ui-selectmanymenu-container", null);
String styleClass = menu.getStyleClass();
styleClass = styleClass == null ? SelectManyMenu.CONTAINER_CLASS : SelectManyMenu.CONTAINER_CLASS + " "
+ styleClass;
styleClass = menu.isDisabled() ? styleClass + " ui-state-disabled" : styleClass;
final UIComponent caption = menu.getFacet("caption");
if (caption != null) {
this.encodeCaption(context, caption);
styleClass = styleClass.replaceFirst("ui-corner-all", " ui-corner-bottom");
}
final String clientId = menu.getClientId(context);
final String style = menu.getStyle();
writer.startElement("div", menu);
writer.writeAttribute("id", clientId, "id");
writer.writeAttribute("class", styleClass, "styleClass");
if (style != null) {
writer.writeAttribute("style", style, "style");
}
this.encodeInput(context, menu, clientId);
this.encodeList(context, menu);
writer.endElement("div");
writer.endElement("div");
}
protected void encodeCaption(final FacesContext context, final UIComponent caption) throws IOException {
final ResponseWriter writer = context.getResponseWriter();
writer.startElement("div", null);
writer.writeAttribute("class", "ui-selectmanymenu-caption ui-widget-header ui-corner-tl ui-corner-tr", null);
caption.encodeAll(context);
writer.endElement("div");
}
}
this is for the css:
Code: Select all
.ui-selectmanymenu-container .ui-selectmanymenu-caption{
text-align: center;
padding: 4px 10px 4px 10px;
border-bottom: 0px none;
}
.ui-selectmanymenu-container .ui-selectmanymenu {
width:auto !important;
}
.ui-selectmanymenu-container{
}
just add the facet with name "caption" and it should work.