public static List<ClientSelectItem> getClientSelectItems( FacesContext facesContext, AbstractSelectManyComponent select, Iterator<SelectItem> selectItems) { List<ClientSelectItem> clientSelectItems = new ArrayList<ClientSelectItem>(); Object object = select.getValue(); List values; if (object == null) { values = new ArrayList(); } else if (object instanceof List) { values = (List) object; } else if (object instanceof Object[]) { values = Arrays.asList((Object[]) object); } else { throw new IllegalArgumentException( "Value expression must evaluate to either a List or Object[]"); } int count = values.size(); // TODO: Deal with SelectItemGroups while (selectItems.hasNext()) { SelectItem selectItem = selectItems.next(); boolean selected; int sortOrder; if (values.contains( selectItem .getValue())) { // TODO: this requires value#equals() to be overridden. Redo with // comparators? selected = true; sortOrder = values.indexOf(selectItem.getValue()); } else { selected = false; sortOrder = count; } ClientSelectItem clientSelectItem = SelectHelper.generateClientSelectItem( facesContext, select, selectItem, sortOrder, selected); clientSelectItems.add(clientSelectItem); if (!selected) { count++; } } Collections.sort(clientSelectItems, clientSelectItemComparator); return clientSelectItems; }
public void encodeItems( FacesContext facesContext, UIComponent component, List<ClientSelectItem> clientSelectItems) throws IOException { SelectHelper.encodeItems( facesContext, component, clientSelectItems, HtmlConstants.SPAN_ELEM, ITEM_CSS); }
public String getSelectInputLabel(FacesContext facesContext, UIComponent component) { return SelectHelper.getSelectInputLabel(facesContext, component); }
public List<ClientSelectItem> getConvertedSelectItems( FacesContext facesContext, UIComponent component) { return SelectHelper.getConvertedSelectItems(facesContext, component); }