protected void encodeScript(FacesContext context, SelectCheckboxMenu menu) throws IOException { ResponseWriter writer = context.getResponseWriter(); String clientId = menu.getClientId(context); WidgetBuilder wb = getWidgetBuilder(context); wb.widget("SelectCheckboxMenu", menu.resolveWidgetVar(), clientId, true) .callback("onShow", "function()", menu.getOnShow()) .callback("onHide", "function()", menu.getOnHide()) .attr("scrollHeight", menu.getScrollHeight(), Integer.MAX_VALUE); if (menu.isFilter()) { wb.attr("filter", true) .attr("filterMatchMode", menu.getFilterMatchMode(), null) .attr("filterFunction", menu.getFilterFunction(), null) .attr("caseSensitive", menu.isCaseSensitive(), false); } wb.attr("panelStyle", menu.getPanelStyle(), null) .attr("panelStyleClass", menu.getPanelStyleClass(), null); encodeClientBehaviors(context, menu, wb); startScript(writer, clientId); writer.write(wb.build()); endScript(writer); }
protected void encodeMarkup(FacesContext context, SelectCheckboxMenu menu) throws IOException { ResponseWriter writer = context.getResponseWriter(); String clientId = menu.getClientId(context); List<SelectItem> selectItems = getSelectItems(context, menu); boolean valid = menu.isValid(); String style = menu.getStyle(); String styleclass = menu.getStyleClass(); styleclass = styleclass == null ? SelectCheckboxMenu.STYLE_CLASS : SelectCheckboxMenu.STYLE_CLASS + " " + styleclass; styleclass = menu.isDisabled() ? styleclass + " ui-state-disabled" : styleclass; styleclass = !valid ? styleclass + " ui-state-error" : styleclass; writer.startElement("div", menu); writer.writeAttribute("id", clientId, "id"); writer.writeAttribute("class", styleclass, "styleclass"); if (style != null) { writer.writeAttribute("style", style, "style"); } encodeInputs(context, menu, selectItems); encodeLabel(context, menu, selectItems, valid); encodeMenuIcon(context, menu, valid); writer.endElement("div"); }
protected void encodeOption( FacesContext context, SelectCheckboxMenu menu, Object values, Object submittedValues, Converter converter, SelectItem option, int idx) throws IOException { ResponseWriter writer = context.getResponseWriter(); String itemValueAsString = getOptionAsString(context, menu, converter, option.getValue()); String name = menu.getClientId(context); String id = name + UINamingContainer.getSeparatorChar(context) + idx; boolean disabled = option.isDisabled() || menu.isDisabled(); Object valuesArray; Object itemValue; if (submittedValues != null) { valuesArray = submittedValues; itemValue = itemValueAsString; } else { valuesArray = values; itemValue = option.getValue(); } boolean checked = isSelected(context, menu, itemValue, valuesArray, converter); if (option.isNoSelectionOption() && values != null && !checked) { return; } // input writer.startElement("input", null); writer.writeAttribute("id", id, null); writer.writeAttribute("name", name, null); writer.writeAttribute("type", "checkbox", null); writer.writeAttribute("value", itemValueAsString, null); if (checked) writer.writeAttribute("checked", "checked", null); if (disabled) writer.writeAttribute("disabled", "disabled", null); if (menu.getOnchange() != null) writer.writeAttribute("onchange", menu.getOnchange(), null); writer.endElement("input"); // label writer.startElement("label", null); writer.writeAttribute("for", id, null); if (disabled) writer.writeAttribute("class", "ui-state-disabled", null); if (option.isEscape()) writer.writeText(option.getLabel(), null); else writer.write(option.getLabel()); writer.endElement("label"); }