background image

Initializing optionsGroup

<< Properties for SelectItems | Properties Bound to Component Instances >>
<< Properties for SelectItems | Properties Bound to Component Instances >>

Initializing optionsGroup

Let's separate the newsletters into two groups: One group includes Duke's newsletters, and the
other group includes the Innovator's Almanac and Random Ramblings newsletters.
In your backing bean, you need a list that contains two SelectItemGroup instances. Each
SelectItemGroup
instance contains two SelectItem instances, each representing a newsletter:
import javax.faces.model.SelectItemGroup;
...
private ArrayList optionsGroup = null;
optionsGroup = new ArrayList(2);
private static final SelectItem options1[] = {
new SelectItem(
"200", "Duke's Quarterly", "");
new SelectItem(
"202",
"Duke's Diet and Exercise Journal", "");
};
private static final SelectItem options2[] = {
new SelectItem(
"201", "Innovator's Almanac", "");
new SelectItem(
"203", "Random Ramblings", "");
};
SelectItemGroup group1 =
new SelectItemGroup(
"Duke's", null, true, options1);
SelectItemGroup group2 =
new SelectItemGroup(
"General Interest", null, true,
options2);
optionsGroup.add(group1);
optionsGroup.add(group2);
...
public Collection getOptionsGroup() {
return optionsGroup;
}
public void setOptionsGroup(Collection newGroupOptions) {
optionsGroup = new ArrayList(newGroupOptions);
}
The code first initializes optionsGroup as a list. The optionsGroup list contains two
SelectItemGroup
objects. Each object is initialized with the label of the group appearing in the
list or menu; a value; a Boolean indicating whether or not the label is disabled; and an array
containing two SelectItem instances. Then each SelectItemGroup is added to the list. Finally,
the code includes the setOptionsGroup and getOptionsGroup accessor methods so that the tag
can access the values. The selectItems tag references the optionsGroup property to get the
SelectItemGroup
objects for populating the list or menu on the page.
Writing Bean Properties
Chapter 12 · Developing with JavaServer Faces Technology
387