protected boolean isSelected(FacesContext context, SelectOneRadio radio, SelectItem selectItem, String currentValue) { String itemStrValue = getOptionAsString(context, radio, radio.getConverter(), selectItem.getValue()); return (itemStrValue == null || "".equals(itemStrValue)) ? currentValue == null || "".equals(currentValue) : itemStrValue.equals(currentValue); }
protected void encodeSelectItems(FacesContext context, SelectOneButton button, List<SelectItem> selectItems) throws IOException { int selectItemsSize = selectItems.size(); Converter converter = button.getConverter(); String name = button.getClientId(context); Object value = button.getSubmittedValue(); if (value == null) { value = button.getValue(); } Class type = value == null ? String.class : value.getClass(); for (int i = 0; i < selectItems.size(); i++) { SelectItem selectItem = selectItems.get(i); boolean disabled = selectItem.isDisabled() || button.isDisabled(); String id = name + UINamingContainer.getSeparatorChar(context) + i; boolean selected; if (value == null && selectItem.getValue() == null) { selected = true; } else { Object coercedItemValue = coerceToModelType(context, selectItem.getValue(), type); selected = (coercedItemValue != null) && coercedItemValue.equals(value); } encodeOption(context, button, selectItem, id, name, converter, selected, disabled, i, selectItemsSize); } }
protected void encodeCustomLayout(FacesContext context, SelectOneRadio radio) throws IOException { Converter converter = radio.getConverter(); String name = radio.getClientId(context); List<SelectItem> selectItems = getSelectItems(context, radio); String currentValue = ComponentUtils.getValueToRender(context, radio); for (int i = 0; i < selectItems.size(); i++) { SelectItem selectItem = selectItems.get(i); String id = name + UINamingContainer.getSeparatorChar(context) + i; boolean selected = isSelected(context, radio, selectItem, currentValue); String itemValueAsString = getOptionAsString(context, radio, converter, selectItem.getValue()); encodeOptionInput(context, radio, id, name, selected, false, itemValueAsString); } }
String selectItemVal = getOptionAsString(context, component, component.getConverter(), selectItem.getValue());
protected void encodeCustomLayout(FacesContext context, SelectManyCheckbox checkbox) throws IOException { List<SelectItem> selectItems = getSelectItems(context, checkbox); Converter converter = checkbox.getConverter(); Object values = getValues(checkbox); Object submittedValues = getSubmittedValues(checkbox); int idx = 0; for (int i = 0; i < selectItems.size(); i++) { SelectItem selectItem = selectItems.get(i); String itemValueAsString = getOptionAsString(context, checkbox, converter, selectItem.getValue()); String name = checkbox.getClientId(context); String id = name + UINamingContainer.getSeparatorChar(context) + idx; Object valuesArray; Object itemValue; if (submittedValues != null) { valuesArray = submittedValues; itemValue = itemValueAsString; } else { valuesArray = values; itemValue = selectItem.getValue(); } boolean selected = isSelected(context, checkbox, itemValue, valuesArray, converter); if (selectItem.isNoSelectionOption() && values != null && !selected) { return; } encodeOptionInput(context, checkbox, id, name, selected, true, itemValueAsString); idx++; } }
@Override public void decode(FacesContext context, UIComponent component) { SelectOneMenu menu = (SelectOneMenu) component; if (!shouldDecode(menu)) { return; } if (!menu.isEditable()) { super.decode(context, component); return; } decodeBehaviors(context, menu); Map<String, String> params = context.getExternalContext().getRequestParameterMap(); // default to user entered input String editableInputId = menu.getClientId(context) + "_editableInput"; if (!params.containsKey(editableInputId)) { return; } String submittedValue = params.get(editableInputId); // #2862 check if it matches a label and if so use the value SelectItem match = null; for (SelectItem item : getSelectItems(context, menu)) { if (item.getLabel().equalsIgnoreCase(submittedValue)) { match = item; break; } } menu.setSubmittedValue(match != null ? getOptionAsString(context, menu, menu.getConverter(), match.getValue()) : submittedValue); }
protected void encodeListItems(FacesContext context, MultiSelectListbox listbox, SelectItem[] selectItems) throws IOException { if (selectItems != null && selectItems.length > 0) { ResponseWriter writer = context.getResponseWriter(); Converter converter = ComponentUtils.getConverter(context, listbox); String itemValue = null; for (int i = 0; i < selectItems.length; i++) { SelectItem selectItem = selectItems[i]; itemValue = converter != null ? converter.getAsString(context, listbox, selectItem.getValue()) : String.valueOf(selectItem.getValue()); writer.startElement("li", null); writer.writeAttribute("class", MultiSelectListbox.ITEM_CLASS, null); writer.writeAttribute("data-value", itemValue, null); writer.startElement("span", listbox); writer.writeText(selectItem.getLabel(), null); writer.endElement("span"); if (selectItem instanceof SelectItemGroup) { SelectItemGroup group = (SelectItemGroup) selectItem; SelectItem[] groupItems = group.getSelectItems(); if (groupItems != null && groupItems.length > 0) { encodeGroupItems(context, listbox, group.getSelectItems()); } } writer.endElement("li"); } } }
protected void encodeOption(FacesContext context, SelectOneRadio radio, SelectItem option, String id, String name, Converter converter, boolean selected, boolean disabled) throws IOException { ResponseWriter writer = context.getResponseWriter(); String itemValueAsString = getOptionAsString(context, radio, converter, option.getValue()); String styleClass = radio.isPlain() ? HTML.RADIOBUTTON_NATIVE_CLASS : HTML.RADIOBUTTON_CLASS; writer.startElement("div", null); writer.writeAttribute("class", styleClass, null); encodeOptionInput(context, radio, id, name, selected, disabled, itemValueAsString); encodeOptionOutput(context, radio, selected, disabled); writer.endElement("div"); encodeOptionLabel(context, radio, id, option, disabled); }
Object itemValue = selectItem.getValue(); String itemLabel = selectItem.getLabel(); itemLabel = isValueBlank(itemLabel) ? " " : itemLabel;
protected void encodeOption(FacesContext context, UIInput component, Object values, Object submittedValues, Converter converter, SelectItem option, int idx) throws IOException { ResponseWriter writer = context.getResponseWriter(); SelectManyCheckbox checkbox = (SelectManyCheckbox) component; String itemValueAsString = getOptionAsString(context, component, converter, option.getValue()); String name = checkbox.getClientId(context); String id = name + UINamingContainer.getSeparatorChar(context) + idx; boolean disabled = option.isDisabled() || checkbox.isDisabled(); Object valuesArray; Object itemValue; if (submittedValues != null) { valuesArray = submittedValues; itemValue = itemValueAsString; } else { valuesArray = values; itemValue = option.getValue(); } boolean selected = isSelected(context, component, itemValue, valuesArray, converter); if (option.isNoSelectionOption() && values != null && !selected) { return; } writer.startElement("div", null); writer.writeAttribute("class", HTML.CHECKBOX_CLASS, null); encodeOptionInput(context, checkbox, id, name, selected, disabled, itemValueAsString); encodeOptionOutput(context, checkbox, selected, disabled); writer.endElement("div"); encodeOptionLabel(context, checkbox, id, option, disabled); }
String itemValueAsString = getOptionAsString(context, listbox, converter, option.getValue()); boolean disabled = option.isDisabled() || listbox.isDisabled(); String itemClass = disabled ? SelectOneListbox.ITEM_CLASS + " ui-state-disabled" : SelectOneListbox.ITEM_CLASS; itemValue = option.getValue(); context.getExternalContext().getRequestMap().put(var, option.getValue());
protected void encodeItem(FacesContext context, SelectManyMenu menu, SelectItem option, Object values, Object submittedValues, Converter converter, boolean customContent, boolean showCheckbox) throws IOException { ResponseWriter writer = context.getResponseWriter(); String itemValueAsString = getOptionAsString(context, menu, converter, option.getValue()); boolean disabled = option.isDisabled() || menu.isDisabled(); String itemClass = disabled ? SelectManyMenu.ITEM_CLASS + " ui-state-disabled" : SelectManyMenu.ITEM_CLASS; itemValue = option.getValue(); context.getExternalContext().getRequestMap().put(var, option.getValue());
protected void encodeOption(FacesContext context, SelectCheckboxMenu menu, Object values, Object submittedValues, Converter converter, SelectItem option, int idx, String selectItemGroupLabel) 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; itemValue = option.getValue();
for (int i = 0; i < selectItems.size(); i++) { SelectItem selectItem = selectItems.get(i); if (isSelected(context, menu, valueToRender, selectItem.getValue(), null)) { valueToRender = selectItem.getLabel(); break;
String itemValueAsString = getOptionAsString(context, button, converter, option.getValue());