private int getSize(UIComponent component) { int size = UIComponentUtil.getPrimitiveIntAttribute(component, JsfConstants.SIZE_ATTR); if (0 < size) { return size; } size = 0; for (Iterator it = new SelectItemsIterator(component); it.hasNext(); ) { SelectItem item = (SelectItem) it.next(); if (item instanceof SelectItemGroup) { SelectItemGroup itemGroup = (SelectItemGroup) item; size += itemGroup.getSelectItems().length; } size++; } return size; }