javax.faces.model.SelectItemGroup Maven / Gradle / Ivy
/*
* $Id: SelectItemGroup.java,v 1.5 2005/12/05 16:42:59 edburns Exp $
*/
/*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the License). You may not use this file except in
* compliance with the License.
*
* You can obtain a copy of the License at
* https://javaserverfaces.dev.java.net/CDDL.html or
* legal/CDDLv1.0.txt.
* See the License for the specific language governing
* permission and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* at legal/CDDLv1.0.txt.
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* [Name of File] [ver.__] [Date]
*
* Copyright 2005 Sun Microsystems Inc. All Rights Reserved
*/
package javax.faces.model;
import javax.faces.component.UISelectMany;
import javax.faces.component.UISelectOne;
/**
* SelectItemGroup is a subclass of {@link SelectItem} that
* identifies a set of options that will be made available as a subordinate
* "submenu" or "options list", depending upon the requirements of the
* {@link UISelectMany} or {@link UISelectOne} renderer that is actually used.
* In general, the value
property of this instance will be ignored,
* and the label
property of this instance will be used to label
* the submenu.
*
* Although it is feasible to incorporate {@link SelectItemGroup} instances
* in he selectItems
property of this instance (thereby creating
* a data structure suitable for cascading submenus), some renderers may place
* restrictions on the level of nesting they support. For example, HTML based
* renderers that create an <select>
element will typically
* render this instance as an <optgroup>
element, but the
* HTML 4.01 Specification disallows nested option groups.
*/
public class SelectItemGroup extends SelectItem {
// ------------------------------------------------------------ Constructors
/**
* Construct a SelectItemGroup
with no initialized property
* values.
*/
public SelectItemGroup() {
super();
}
/**
* Construct a SelectItemGroup
with the specified label
* and no associated selectItem
s. The value
* property will be set to a zero-length String, the
* description
property will be set to null
,
* and the disabled
property will be set to false.
*
* @param label Label to be rendered for this group in the response
*
* @throws NullPointerException if label
* is false
*/
public SelectItemGroup(String label) {
super("", label);
}
/**
* Construct a SelectItemGroup
with the specified
* properties. The value
property will be set to a
* zero-length String.
*
* @param label Label to be rendered for this group in the response
* @param description Description of this group, for use in tools
* @param disabled Flag indicating that this group is disabled
* @param selectItems Array of {@link SelectItem} describing the
* items available in this group
*
* @throws NullPointerException if label
* or selectItems
is false
*/
public SelectItemGroup(String label, String description, boolean disabled,
SelectItem selectItems[]) {
super("", label, description, disabled);
setSelectItems(selectItems);
}
// ------------------------------------------------------ Instance Variables
private SelectItem selectItems[] = null;
// -------------------------------------------------------------- Properties
/**
* Return the set of subordinate {@link SelectItem}s for this group.
*/
public SelectItem[] getSelectItems() {
return (this.selectItems);
}
/**
* Set the set of subordinate {@link SelectItem}s for this group.
*
* @param selectItems The new set of subordinate items
*
* @throws NullPointerException if selectItems
* is null
*/
public void setSelectItems(SelectItem selectItems[]) {
if (selectItems == null) {
throw new NullPointerException();
}
this.selectItems = selectItems;
}
}