Refine search
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"); } } }
private String option; // +getter +setter private List<SelectItem> options; // +getter public Bean() { options = new ArrayList<SelectItem>(); SelectItemGroup group1 = new SelectItemGroup("Group 1"); group1.setSelectItems(new SelectItem[] { new SelectItem("Group 1 Value 1", "Group 1 Label 1"), new SelectItem("Group 1 Value 2", "Group 1 Label 2"), new SelectItem("Group 1 Value 3", "Group 1 Label 3") }); options.add(group1); SelectItemGroup group2 = new SelectItemGroup("Group 2"); group2.setSelectItems(new SelectItem[] { new SelectItem("Group 2 Value 1", "Group 2 Label 1"), new SelectItem("Group 2 Value 2", "Group 2 Label 2"), new SelectItem("Group 2 Value 3", "Group 2 Label 3") }); options.add(group2); }
protected void encodeInputs(FacesContext context, SelectCheckboxMenu menu, List<SelectItem> selectItems) throws IOException { ResponseWriter writer = context.getResponseWriter(); Converter converter = menu.getConverter(); Object values = getValues(menu); Object submittedValues = getSubmittedValues(menu); writer.startElement("div", menu); writer.writeAttribute("class", "ui-helper-hidden", null); int idx = -1; for (int i = 0; i < selectItems.size(); i++) { SelectItem selectItem = selectItems.get(i); if (selectItem instanceof SelectItemGroup) { SelectItemGroup selectItemGroup = (SelectItemGroup) selectItem; String selectItemGroupLabel = selectItemGroup.getLabel() == null ? "" : selectItemGroup.getLabel(); for (SelectItem childSelectItem : selectItemGroup.getSelectItems()) { idx++; encodeOption(context, menu, values, submittedValues, converter, childSelectItem, idx, selectItemGroupLabel); } } else { idx++; encodeOption(context, menu, values, submittedValues, converter, selectItem, idx); } } writer.endElement("div"); }
protected void encodeGroupLabel(FacesContext context, SelectManyCheckbox checkbox, SelectItemGroup group) throws IOException { ResponseWriter writer = context.getResponseWriter(); writer.startElement("span", null); writer.writeAttribute("class", "ui-selectmanycheckbox-item-group", null); if (group.isEscape()) { writer.writeText(group.getLabel(), null); } else { writer.write(group.getLabel()); } writer.endElement("span"); }
private static void renderSelectOptionsAsText(FacesContext context, UIComponent component, Converter converter, Set lookupSet, List selectItemList, boolean isSelectOne) throws IOException { ResponseWriter writer = context.getResponseWriter(); for (Iterator it = selectItemList.iterator(); it.hasNext();) { SelectItem selectItem = (SelectItem) it.next(); if (selectItem instanceof SelectItemGroup) { SelectItem[] selectItems = ((SelectItemGroup) selectItem) .getSelectItems(); renderSelectOptionsAsText(context, component, converter, lookupSet, Arrays.asList(selectItems), isSelectOne); } else { String itemStrValue = RendererUtils.getConvertedStringValue(context, component, converter, selectItem); if (lookupSet.contains(itemStrValue)) { //TODO/FIX: we always compare the String vales, better fill lookupSet with Strings only when useSubmittedValue==true, else use the real item value Objects if( ! isSelectOne ) writer.startElement(HTML.LI_ELEM, component); writer.writeText(selectItem.getLabel(), null); if( ! isSelectOne ) writer.endElement(HTML.LI_ELEM); if( isSelectOne ) { //take care of several choices with the same value; use only the first one return; } } } } }
throws IOException { ResponseWriter writer = context.getResponseWriter(); assert(writer != null); if (item instanceof SelectItemGroup) { writer.startElement("optgroup", component); writer.writeAttribute("label", item.getLabel(), "label"); if ((!componentDisabled) && item.isDisabled()) { writer.writeAttribute("disabled", true, "disabled"); ((SelectItemGroup) item).getSelectItems(); for (int i = 0; i < itemsArray.length; ++i) { renderOption(context,
((SelectItemGroup) item).getSelectItems()).iterator(); converter = getSelectItemsValueConverter(groupIterator, facesContext); Class<?> selectItemsType = item.getValue().getClass(); converter = facesContext.getApplication().createConverter(selectItemsType);
SelectItem[] selectItems = selectItemGroup.getSelectItems(); Iterator selectItemsIt = new ArrayIterator(selectItems); writer.startElement(JsfConstants.OPTGROUP_ELEM, component); RendererUtil.renderAttribute(writer, JsfConstants.LABEL_ATTR, selectItemGroup.getLabel()); writer.endElement(JsfConstants.OPTGROUP_ELEM); } else { writer.startElement(JsfConstants.OPTION_ELEM, component); final Object value = selectItem.getValue(); RendererUtil.renderAttribute(writer, JsfConstants.VALUE_ATTR, value); || selectItem.isDisabled(); final String labelClass = getLabelStyleClass(component, disabled); renderSelectedAttribute(writer); if (selectItem.isDisabled()) { renderDisabledAttribute(writer);
protected void renderSelectItemGroup(FacesContext context, UIComponent htmlSelectManyCheckbox, ResponseWriter writer, String[] selectedValues, final SelectItem selectItem, final boolean pageDirectionLayout, final boolean noneLayout) throws IOException { SelectItemGroup selectItemGroup = (SelectItemGroup) selectItem; SelectItem[] selectItems = selectItemGroup.getSelectItems(); Iterator selectItemsIt = new ArrayIterator(selectItems); if (!noneLayout) { writer .startElement(JsfConstants.TABLE_ELEM, htmlSelectManyCheckbox); if (!pageDirectionLayout) { writer.startElement(JsfConstants.TR_ELEM, htmlSelectManyCheckbox); } } renderSelectItems(context, htmlSelectManyCheckbox, writer, selectItemsIt, selectedValues, pageDirectionLayout, noneLayout); if (!noneLayout) { if (!pageDirectionLayout) { writer.endElement(JsfConstants.TR_ELEM); } writer.endElement(JsfConstants.TABLE_ELEM); } }
private static void collect(Iterator<SelectItem> items, List<Object> values) { while (items.hasNext()) { SelectItem item = items.next(); if (item instanceof SelectItemGroup) { SelectItem[] subitems = ((SelectItemGroup) item).getSelectItems(); if (!isEmpty(subitems)) { collect(new ArrayIterator(subitems), values); } } else if (!item.isNoSelectionOption()) { values.add(item.getValue()); } } }
public List<SelectItem> getPropertyList() { List<SelectItem> propertyNames = new ArrayList<SelectItem>(); TablePropertyDefinition[] propDefinitions = TablePropertyDefinitionUtils .getDefaultDefinitionsForTable(TABLE_TYPE, InheritanceLevel.TABLE, true); SelectItem selectItem = new SelectItem(""); selectItem.setLabel(""); propertyNames.add(selectItem); Map<String, List<TablePropertyDefinition>> propGroups = TablePropertyDefinitionUtils .groupProperties(propDefinitions); for (Map.Entry<String, List<TablePropertyDefinition>> entry : propGroups.entrySet()) { List<SelectItem> items = new ArrayList<SelectItem>(); for (TablePropertyDefinition propDefinition : entry.getValue()) { String propName = propDefinition.getName(); if (propDefinition.getDeprecation() == null) { items.add(new SelectItem(propName, propDefinition.getDisplayName())); } } if (!items.isEmpty()) { SelectItemGroup itemGroup = new SelectItemGroup(entry.getKey()); itemGroup.setSelectItems(items.toArray(new SelectItem[items.size()])); propertyNames.add(itemGroup); } } return propertyNames; }
public static Converter getSelectItemConverter(Application facesApplication, Iterator<SelectItem> selectItems) { Converter converter = null; while (selectItems.hasNext() && converter == null) { SelectItem selectItem = selectItems.next(); if (selectItem instanceof SelectItemGroup) { SelectItemGroup selectItemGroup = (SelectItemGroup) selectItem; Iterator<SelectItem> groupSelectItems = Iterators.forArray(selectItemGroup.getSelectItems()); // Recursively get the converter from the SelectItems of the SelectItemGroup converter = getSelectItemConverter(facesApplication, groupSelectItems); } else { Class<?> selectItemClass = selectItem.getValue().getClass(); if (String.class.equals(selectItemClass)) { return null; // No converter required for strings } try { converter = facesApplication.createConverter(selectItemClass); // Lookup the converter registered for the class } catch (FacesException exception) { // Converter cannot be created } } } return converter; }
component, oldValues, Arrays.asList(((SelectItemGroup) selectItem).getSelectItems()), submittedValues)); String selectItemVal = getOptionAsString(context, component, component.getConverter(), selectItem.getValue()); if (selectItem.isDisabled()) { if (LangUtils.contains(submittedValues, selectItemVal) && !LangUtils.contains(oldValues, selectItemVal)) {
protected int countSelectItems(SelectItem[] selectItems) { if (selectItems == null) { return 0; } int count = selectItems.length; for (SelectItem selectItem : selectItems) { if (selectItem instanceof SelectItemGroup) { count += countSelectItems(((SelectItemGroup) selectItem).getSelectItems()); } } return count; }
SelectItem[] selectItems = itemgroup.getSelectItems(); if (selectItems != null && selectItems.length > 0 else if (item.isNoSelectionOption())
Element optGroup = domContext.createElement("optgroup"); rootSelectElement.appendChild(optGroup); optGroup.setAttribute("label", nextSelectItem.getLabel()); domContext.setCursorParent(optGroup); SelectItem[] selectItemsArray = ((SelectItemGroup) nextSelectItem).getSelectItems(); for (int i = 0; i < selectItemsArray.length; ++i) { renderOption(facesContext, uiComponent, selectItemsArray[i],
public SelectItemGroup(String label, String description, boolean disabled, SelectItem[] selectItems) { super("", label, description, disabled); setSelectItems(selectItems); }
public List<SelectItem> getAllSavedSearchesSelectItems() { List<SelectItem> items = new ArrayList<>(); // Add flagged content views SelectItemGroup flaggedGroup = new SelectItemGroup(messages.get(SEARCH_FILTERS_LABEL)); List<ContentViewHeader> flaggedSavedSearches = getContentViewHeaders(); List<SelectItem> flaggedSavedSearchesItems = convertCVToSelectItems(flaggedSavedSearches); flaggedGroup.setSelectItems( flaggedSavedSearchesItems.toArray(new SelectItem[flaggedSavedSearchesItems.size()])); items.add(flaggedGroup); // Add saved searches List<DocumentModel> userSavedSearches = getSavedSearches(); if (!userSavedSearches.isEmpty()) { SelectItemGroup userGroup = new SelectItemGroup(messages.get(SAVED_SEARCHES_LABEL)); List<SelectItem> userSavedSearchesItems = convertToSelectItems(userSavedSearches); userGroup.setSelectItems(userSavedSearchesItems.toArray(new SelectItem[userSavedSearchesItems.size()])); items.add(userGroup); } // Add shared searches List<DocumentModel> otherUsersSavedFacetedSearches = getSharedSearches(); if (!otherUsersSavedFacetedSearches.isEmpty()) { List<SelectItem> otherUsersSavedSearchesItems = convertToSelectItems(otherUsersSavedFacetedSearches); SelectItemGroup allGroup = new SelectItemGroup(messages.get(SHARED_SEARCHES_LABEL)); allGroup.setSelectItems( otherUsersSavedSearchesItems.toArray(new SelectItem[otherUsersSavedSearchesItems.size()])); items.add(allGroup); } return items; }
private static void renderSelectOptionsAsText(FacesContext context, UIComponent component, Converter converter, Set lookupSet, List selectItemList, boolean isSelectOne) throws IOException { ResponseWriter writer = context.getResponseWriter(); for (Iterator it = selectItemList.iterator(); it.hasNext();) { SelectItem selectItem = (SelectItem) it.next(); if (selectItem instanceof SelectItemGroup) { SelectItem[] selectItems = ((SelectItemGroup) selectItem) .getSelectItems(); renderSelectOptionsAsText(context, component, converter, lookupSet, Arrays.asList(selectItems), isSelectOne); } else { String itemStrValue = RendererUtils.getConvertedStringValue(context, component, converter, selectItem); if (lookupSet.contains(itemStrValue)) { //TODO/FIX: we always compare the String vales, better fill lookupSet with Strings only when useSubmittedValue==true, else use the real item value Objects if (!isSelectOne) writer.startElement(HTML.LI_ELEM, component); writer.writeText(selectItem.getLabel(), null); if (!isSelectOne) writer.endElement(HTML.LI_ELEM); if (isSelectOne) { //take care of several choices with the same value; use only the first one return; } } } } }
protected int renderOptions(FacesContext context, UIComponent component, SelectItemsIterator<SelectItem> items) throws IOException { ResponseWriter writer = context.getResponseWriter(); writer.startElement("optgroup", (null != selectComponent) ? selectComponent : component); writer.writeAttribute("label", item.getLabel(), "label"); if ((!optionInfo.isDisabled()) && item.isDisabled()) { writer.writeAttribute("disabled", true, "disabled"); SelectItem[] itemsArray = ((SelectItemGroup) item).getSelectItems(); for (SelectItem element : itemsArray) { if (renderOption(context, component, selectComponent, converter, element, currentSelections, submittedValues, optionInfo)) {