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); }
private DataModel createDataModel() { Object value = getValue(); if (value == null) { return EMPTY_MODEL; } else if (value instanceof DataModel) { return (DataModel) value; } else if (value instanceof List) { return new ListDataModel((List<?>) value); } else if (OBJECT_ARRAY_CLASS.isAssignableFrom(value.getClass())) { return new ArrayDataModel((Object[]) value); } else if (value instanceof ResultSet) { return new ResultSetDataModel((ResultSet) value); } else { return new ScalarDataModel(value); } }
/** * Returns the rowCount of the underlying DataModel. * * @return */ public int getRowCount() { return getDataModel().getRowCount(); }
protected void encodeOptionLabel(FacesContext context, SelectManyCheckbox checkbox, String containerClientId, SelectItem option, boolean disabled) throws IOException { ResponseWriter writer = context.getResponseWriter(); writer.startElement("label", null); if (disabled) { writer.writeAttribute("class", "ui-state-disabled", null); } writer.writeAttribute("for", containerClientId, null); if (option.getDescription() != null) { writer.writeAttribute("title", option.getDescription(), null); } if (option.isEscape()) { writer.writeText(option.getLabel(), null); } else { writer.write(option.getLabel()); } writer.endElement("label"); }
@Override public void setRowIndex(int rowIndex) { int oldIndex = this.rowIndex; if (rowIndex == -1 || pageSize == 0) { this.rowIndex = -1; } else { this.rowIndex = (rowIndex % pageSize); } if (data == null) { return; } DataModelListener[] listeners = getDataModelListeners(); if (listeners != null && oldIndex != this.rowIndex) { Object rowData = null; if (isRowAvailable()) { rowData = getRowData(); } DataModelEvent dataModelEvent = new DataModelEvent(this, rowIndex, rowData); for (int i = 0; i < listeners.length; i++) { listeners[i].rowSelected(dataModelEvent); } } }
/** * Returns the rowCount of the underlying DataModel. * * @return */ public Object getIndexData() { if (!getDataModel().isRowAvailable()) { return null; } return getDataModel().getRowData(); }
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 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; }
private boolean isIndexAvailable() { return getDataModel().isRowAvailable(); }
protected List resolveList(Object value) { if (value instanceof List) { return (List) value; } else if (value instanceof ListDataModel) { return (List) ((ListDataModel) value).getWrappedData(); } else { throw new FacesException("Data type should be java.util.List or javax.faces.model.ListDataModel instance to be sortable."); } } }
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"); }
model = new ListDataModel<>((List<Object>) val); model = new ArrayDataModel<>((Object[]) val); model = new ResultSetDataModel((ResultSet) val); model = new ScalarDataModel<>(val);
protected void encodeOptionLabel(FacesContext context, SelectOneRadio radio, String containerClientId, SelectItem option, boolean disabled) throws IOException { ResponseWriter writer = context.getResponseWriter(); String label = option.getLabel(); writer.startElement("label", null); writer.writeAttribute("for", containerClientId, null); if (disabled) { writer.writeAttribute("class", "ui-state-disabled", null); } if (option.getDescription() != null) { writer.writeAttribute("title", option.getDescription(), null); } if (label != null) { if (option.isEscape()) { writer.writeText(label, null); } else { writer.write(label); } } writer.endElement("label"); }
@Override public void setRowIndex(int rowIndex) { if (rowIndex < -1) { throw new IllegalArgumentException(); } int oldIndex = index; index = rowIndex; if (wrappedArray == null) { return; } DataModelListener[] listeners = getDataModelListeners(); if (oldIndex != index && listeners != null) { Object rowData = null; if (isRowAvailable()) { rowData = getRowData(); } DataModelEvent event = new DataModelEvent(this, index, rowData); for (DataModelListener listener : listeners) { if (listener != null) { listener.rowSelected(event); } } } }
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); }
protected int countSelectItems(List<SelectItem> selectItems) { if (selectItems == null) { return 0; } int count = selectItems.size(); for (int i = 0; i < selectItems.size(); i++) { SelectItem selectItem = selectItems.get(i); if (selectItem instanceof SelectItemGroup) { count += countSelectItems(((SelectItemGroup) selectItem).getSelectItems()); } } return count; }
private RepeatStatus getRepeatStatus() { return new RepeatStatus(_count == 0, _index + getStep() >= getDataModel().getRowCount(), _count, _index, getOffset(), _end, getStep()); }
private boolean isIndexAvailable() { return getDataModel().isRowAvailable(); }
@Override public void setRowIndex(int rowIndex) { if (rowIndex < -1) { throw new IllegalArgumentException(); } int oldIndex = index; index = rowIndex; if (wrappedList == null) { return; } DataModelListener[] dataModelListeners = getDataModelListeners(); if (oldIndex != index && dataModelListeners != null) { Object rowData = null; if (isRowAvailable()) { rowData = getRowData(); } DataModelEvent event = new DataModelEvent(this, index, rowData); for (DataModelListener listener : dataModelListeners) { if (listener != null) { listener.rowSelected(event); } } } }
protected void encodeOptionsAsList(FacesContext context, SelectOneMenu menu, List<SelectItem> selectItems) throws IOException { for (int i = 0; i < selectItems.size(); i++) { SelectItem selectItem = selectItems.get(i); if (selectItem instanceof SelectItemGroup) { SelectItemGroup group = (SelectItemGroup) selectItem; encodeItem(context, menu, group, SelectOneMenu.ITEM_GROUP_CLASS); encodeOptionsAsList(context, menu, Arrays.asList(group.getSelectItems())); } else { encodeItem(context, menu, selectItem, SelectOneMenu.ITEM_CLASS); } } }