javax.faces.component
Class UISelectMany

java.lang.Object
  |
  +--javax.faces.component.UIComponent
        |
        +--javax.faces.component.UIComponentBase
              |
              +--javax.faces.component.UIOutput
                    |
                    +--javax.faces.component.UIInput
                          |
                          +--javax.faces.component.UISelectMany
All Implemented Interfaces:
EditableValueHolder, StateHolder, ValueHolder
Direct Known Subclasses:
HtmlSelectManyCheckbox, HtmlSelectManyListbox, HtmlSelectManyMenu

public class UISelectMany
extends UIInput

UISelectMany is a UIComponent that represents the user's choice of a zero or more items from among a discrete set of available options. The user can modify the selected values. Optionally, the component can be preconfigured with zero or more currently selected items, by storing them as an array in the value property of the component.

This component is generally rendered as a select box or a group of checkboxes.

By default, the rendererType property must be set to "javax.faces.Listbox". This value can be changed by calling the setRendererType() method.

The Renderer for this component must perform the following logic on getConvertedValue():


Field Summary
static java.lang.String COMPONENT_FAMILY
          The standard component family for this component.
static java.lang.String COMPONENT_TYPE
          The standard component type for this component.
static java.lang.String INVALID_MESSAGE_ID
          The message identifier of the FacesMessage to be created if a value not matching the available options is specified.
 
Fields inherited from class javax.faces.component.UIInput
CONVERSION_MESSAGE_ID, REQUIRED_MESSAGE_ID
 
Constructor Summary
UISelectMany()
          Create a new UISelectMany instance with default property values.
 
Method Summary
protected  boolean compareValues(java.lang.Object previous, java.lang.Object value)
          Return true if the new value is different from the previous value.
 java.lang.String getFamily()
          Return the identifier of the component family to which this component belongs.
 java.lang.Object[] getSelectedValues()
          Return the currently selected values, or null if there are no currently selected values.
 javax.faces.el.ValueBinding getValueBinding(java.lang.String name)
          Return any ValueBinding set for value if a ValueBinding for selectedValues is requested; otherwise, perform the default superclass processing for this method.
 void setSelectedValues(java.lang.Object[] selectedValues)
          Set the currently selected values, or null to indicate that there are no currently selected values.
 void setValueBinding(java.lang.String name, javax.faces.el.ValueBinding binding)
          Store any ValueBinding specified for selectedValues under value instead; otherwise, perform the default superclass processing for this method.
protected  void validateValue(javax.faces.context.FacesContext context, java.lang.Object value)
          In addition to the standard validation behavior inherited from UIInput, ensure that any specified values are equal to one of the available options.
 
Methods inherited from class javax.faces.component.UIInput
addValidator, addValueChangeListener, broadcast, decode, getConvertedValue, getSubmittedValue, getValidator, getValidators, getValueChangeListener, getValueChangeListeners, isImmediate, isLocalValueSet, isRequired, isValid, processDecodes, processUpdates, processValidators, removeValidator, removeValueChangeListener, restoreState, saveState, setImmediate, setLocalValueSet, setRequired, setSubmittedValue, setValid, setValidator, setValue, setValueChangeListener, updateModel, validate
 
Methods inherited from class javax.faces.component.UIOutput
getConverter, getLocalValue, getValue, setConverter
 
Methods inherited from class javax.faces.component.UIComponentBase
addFacesListener, encodeBegin, encodeChildren, encodeEnd, findComponent, getAttributes, getChildCount, getChildren, getClientId, getFacesContext, getFacesListeners, getFacet, getFacets, getFacetsAndChildren, getId, getParent, getRenderer, getRendererType, getRendersChildren, isRendered, isTransient, processRestoreState, processSaveState, queueEvent, removeFacesListener, restoreAttachedState, saveAttachedState, setId, setParent, setRendered, setRendererType, setTransient
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.faces.component.ValueHolder
getConverter, getLocalValue, getValue, setConverter
 

Field Detail

COMPONENT_TYPE

public static final java.lang.String COMPONENT_TYPE

The standard component type for this component.

See Also:
Constant Field Values

COMPONENT_FAMILY

public static final java.lang.String COMPONENT_FAMILY

The standard component family for this component.

See Also:
Constant Field Values

INVALID_MESSAGE_ID

public static final java.lang.String INVALID_MESSAGE_ID

The message identifier of the FacesMessage to be created if a value not matching the available options is specified.

See Also:
Constant Field Values
Constructor Detail

UISelectMany

public UISelectMany()

Create a new UISelectMany instance with default property values.

Method Detail

getFamily

public java.lang.String getFamily()
Description copied from class: UIComponent

Return the identifier of the component family to which this component belongs. This identifier, in conjunction with the value of the rendererType property, may be used to select the appropriate Renderer for this component instance.

Overrides:
getFamily in class UIInput

getSelectedValues

public java.lang.Object[] getSelectedValues()

Return the currently selected values, or null if there are no currently selected values. This is a typesafe alias for getValue().


setSelectedValues

public void setSelectedValues(java.lang.Object[] selectedValues)

Set the currently selected values, or null to indicate that there are no currently selected values. This is a typesafe alias for setValue().

Parameters:
selectedValues - The new selected values (if any)

getValueBinding

public javax.faces.el.ValueBinding getValueBinding(java.lang.String name)

Return any ValueBinding set for value if a ValueBinding for selectedValues is requested; otherwise, perform the default superclass processing for this method.

Overrides:
getValueBinding in class UIComponentBase
Parameters:
name - Name of the attribute or property for which to retrieve a ValueBinding
Throws:
java.lang.NullPointerException - if name is null

setValueBinding

public void setValueBinding(java.lang.String name,
                            javax.faces.el.ValueBinding binding)

Store any ValueBinding specified for selectedValues under value instead; otherwise, perform the default superclass processing for this method.

Overrides:
setValueBinding in class UIComponentBase
Parameters:
name - Name of the attribute or property for which to set a ValueBinding
binding - The ValueBinding to set, or null to remove any currently set ValueBinding
Throws:
java.lang.NullPointerException - if name is null

compareValues

protected boolean compareValues(java.lang.Object previous,
                                java.lang.Object value)

Return true if the new value is different from the previous value. Value comparison must not be sensitive to element order.

Overrides:
compareValues in class UIInput
Parameters:
previous - old value of this component
value - new value of this component

validateValue

protected void validateValue(javax.faces.context.FacesContext context,
                             java.lang.Object value)

In addition to the standard validation behavior inherited from UIInput, ensure that any specified values are equal to one of the available options. If it is not, enqueue an error message and set the valid property to false.

Overrides:
validateValue in class UIInput
Parameters:
context - The FacesContext for the current request
value - The converted value to test for membership.
Throws:
java.lang.NullPointerException - if context is null


Copyright ? 2002-2004 Sun Microsystems, Inc. All Rights Reserved.