com.guiseframework.component
Class AbstractListSelectControl<V>

java.lang.Object
  extended by com.globalmentor.beans.BoundPropertyObject
      extended by com.guiseframework.event.GuiseBoundPropertyObject
          extended by com.guiseframework.model.ui.AbstractPresentationModel
              extended by com.guiseframework.component.AbstractComponent
                  extended by com.guiseframework.component.AbstractCompositeComponent
                      extended by com.guiseframework.component.AbstractMultipleCompositeComponent
                          extended by com.guiseframework.component.AbstractCompositeStateComponent<T,S>
                              extended by com.guiseframework.component.AbstractCompositeStateControl<V,AbstractListSelectControl.ValueComponentState>
                                  extended by com.guiseframework.component.AbstractListSelectControl<V>
Type Parameters:
V - The type of values to select.
All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable, Component, CompositeComponent, Control, InputFocusableComponent, ListSelectControl<V>, SelectControl<V>, ValueControl<V>, ValuedComponent<V>, ListListenable<V>, Displayable, Enableable, InfoModel, LabelModel, ListSelectModel<V>, Model, SelectModel<V>, PresentationModel, Valued<V>, ValueModel<V>, DepictedObject, java.lang.Iterable<V>, java.util.Collection<V>, java.util.List<V>
Direct Known Subclasses:
BooleanValueControlSelectControl, ListControl, TabControl

public abstract class AbstractListSelectControl<V>
extends AbstractCompositeStateControl<V,AbstractListSelectControl.ValueComponentState>
implements ListSelectControl<V>

Abstract implementation of a control to allow selection by the user of a value from a list. The component valid status is updated before a change in the ValueModel.VALUE_PROPERTY or the ValueModel.VALIDATOR_PROPERTY is fired. This implementation does not yet fully support elements that appear more than once in the model.

Author:
Garret Wilson

Nested Class Summary
static class AbstractListSelectControl.ConverterInfoModelValueRepresentationStrategy<VV>
          A list select value representation strategy that creates a component by converting the value to a info model.
static class AbstractListSelectControl.DefaultValueRepresentationStrategy<VV>
          A default list select value representation strategy that creates a Label.
protected static class AbstractListSelectControl.ValueComponentState
          An encapsulation of a component for a tree node along with other metadata, such as whether the component was editable when created.
 
Nested classes/interfaces inherited from class com.guiseframework.component.AbstractCompositeStateComponent
AbstractCompositeStateComponent.ComponentState
 
Nested classes/interfaces inherited from class com.guiseframework.component.AbstractComponent
AbstractComponent.AbstractFlyoverFrameStrategy<S extends Component>, AbstractComponent.AbstractFlyoverStrategy<S extends Component>, AbstractComponent.DefaultFlyoverStrategy<S extends Component>
 
Nested classes/interfaces inherited from interface com.guiseframework.component.ListSelectControl
ListSelectControl.ValueRepresentationStrategy<VV>
 
Nested classes/interfaces inherited from interface com.guiseframework.component.Control
Control.Status
 
Nested classes/interfaces inherited from interface com.guiseframework.component.Component
Component.FlyoverStrategy<S extends Component>
 
Field Summary
 
Fields inherited from class com.globalmentor.beans.BoundPropertyObject
NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS
 
Fields inherited from interface com.guiseframework.component.SelectControl
VALUE_REPRESENTATION_STRATEGY_PROPERTY
 
Fields inherited from interface com.guiseframework.component.ValueControl
CONVERTER_PROPERTY
 
Fields inherited from interface com.guiseframework.component.Control
STATUS_PROPERTY
 
Fields inherited from interface com.guiseframework.component.Component
BOOKMARK_ENABLED_PROPERTY, CONSTRAINTS_PROPERTY, DRAG_ENABLED_PROPERTY, DROP_ENABLED_PROPERTY, FLYOVER_ENABLED_PROPERTY, FLYOVER_STRATEGY_PROPERTY, INPUT_STRATEGY_PROPERTY, NAME_PROPERTY, NOTIFICATION_PROPERTY, ORIENTATION_PROPERTY, THEME_APPLIED_PROPERTY, VALID_PROPERTY
 
Fields inherited from interface com.guiseframework.model.ui.PresentationModel
BACKGROUND_COLOR_PROPERTY, BORDER_LINE_FAR_COLOR_PROPERTY, BORDER_LINE_FAR_EXTENT_PROPERTY, BORDER_LINE_FAR_STYLE_PROPERTY, BORDER_LINE_NEAR_COLOR_PROPERTY, BORDER_LINE_NEAR_EXTENT_PROPERTY, BORDER_LINE_NEAR_STYLE_PROPERTY, BORDER_PAGE_FAR_COLOR_PROPERTY, BORDER_PAGE_FAR_EXTENT_PROPERTY, BORDER_PAGE_FAR_STYLE_PROPERTY, BORDER_PAGE_NEAR_COLOR_PROPERTY, BORDER_PAGE_NEAR_EXTENT_PROPERTY, BORDER_PAGE_NEAR_STYLE_PROPERTY, CORNER_LINE_FAR_PAGE_FAR_ARC_SIZE_PROPERTY, CORNER_LINE_FAR_PAGE_NEAR_ARC_SIZE_PROPERTY, CORNER_LINE_NEAR_PAGE_FAR_ARC_SIZE_PROPERTY, CORNER_LINE_NEAR_PAGE_NEAR_ARC_SIZE_PROPERTY, CURSOR_PROPERTY, FONT_FAMILIES_PROPERTY, FONT_SIZE_PROPERTY, FONT_STYLE_PROPERTY, FONT_WEIGHT_BOLD, FONT_WEIGHT_NORMAL, FONT_WEIGHT_PROPERTY, LABEL_FONT_FAMILIES_PROPERTY, LABEL_FONT_SIZE_PROPERTY, LABEL_FONT_STYLE_PROPERTY, LABEL_FONT_WEIGHT_PROPERTY, LABEL_TEXT_COLOR_PROPERTY, LINE_EXTENT_PROPERTY, MARGIN_LINE_FAR_EXTENT_PROPERTY, MARGIN_LINE_NEAR_EXTENT_PROPERTY, MARGIN_PAGE_FAR_EXTENT_PROPERTY, MARGIN_PAGE_NEAR_EXTENT_PROPERTY, OPACITY_PROPERTY, PADDING_LINE_FAR_EXTENT_PROPERTY, PADDING_LINE_NEAR_EXTENT_PROPERTY, PADDING_PAGE_FAR_EXTENT_PROPERTY, PADDING_PAGE_NEAR_EXTENT_PROPERTY, PAGE_EXTENT_PROPERTY, ROUNDED_CORNER_ARC_SIZE, STYLE_ID_PROPERTY, TEXT_COLOR_PROPERTY, TOOLTIP_ENABLED_PROPERTY, VISIBLE_PROPERTY
 
Fields inherited from interface com.guiseframework.model.Displayable
DISPLAYED_PROPERTY
 
Fields inherited from interface com.guiseframework.model.InfoModel
DESCRIPTION_CONTENT_TYPE_PROPERTY, DESCRIPTION_PROPERTY, INFO_CONTENT_TYPE_PROPERTY, INFO_PROPERTY
 
Fields inherited from interface com.guiseframework.model.LabelModel
GLYPH_URI_PROPERTY, LABEL_CONTENT_TYPE_PROPERTY, LABEL_PROPERTY
 
Fields inherited from interface com.guiseframework.model.Model
PLAIN_TEXT_CONTENT_TYPE, XHTML_CONTENT_TYPE, XHTML_FRAGMENT_CONTENT_TYPE
 
Fields inherited from interface com.guiseframework.model.Enableable
ENABLED_PROPERTY
 
Fields inherited from interface com.guiseframework.model.ValueModel
VALIDATOR_PROPERTY, VALUE_PROPERTY
 
Constructor Summary
AbstractListSelectControl(ListSelectModel<V> listSelectModel, ListSelectControl.ValueRepresentationStrategy<V> valueRepresentationStrategy)
          List select model and value representation strategy constructor.
 
Method Summary
 void add(int index, V value)
          Inserts the specified value at the specified position in this model.
 boolean add(V value)
          Appends the specified value to the end of this model.
 boolean addAll(java.util.Collection<? extends V> collection)
          Appends all of the values in the specified collection to the end of this model, in the order that they are returned by the specified collection's iterator.
 boolean addAll(int index, java.util.Collection<? extends V> collection)
          Inserts all of the values in the specified collection into this model at the specified position.
 void addListListener(ListListener<V> listListener)
          Adds a list listener.
 void addListSelectionListener(ListSelectionListener<V> selectionListener)
          Adds a list selection listener.
 void addSelectedIndexes(int... indexes)
          Adds a selection at the given indices.
 void clear()
          Removes all of the values from this model.
 void clearValue()
          Clears the value by setting the value to null, which may be invalid according to any installed validators.
 boolean contains(java.lang.Object value)
          Determines whether this model contains the specified value.
 boolean containsAll(java.util.Collection<?> collection)
          Determines if this model contains all of the values of the specified collection.
protected  AbstractListSelectControl.ValueComponentState createComponentState(V value)
          Creates a component state to represent the given object.
protected  boolean determineValid()
          Checks the state of the component for validity.
protected  void fireListModified(int index, V addedElement, V removedElement)
          Fires an event to all registered list listeners indicating the list was modified.
protected
<VV> void
firePropertyChange(java.lang.String propertyName, VV oldValue, VV newValue)
          Reports that a bound property has changed.
protected  void fireSelectionChanged(java.lang.Integer addedIndex, java.lang.Integer removedIndex)
          Fires an event to all registered selection listeners indicating the selection changed.
 V get(int index)
          Returns the value at the specified position in this model.
 Component getComponent(V value)
          Retrieves the component for the given object.
 V getDefaultValue()
           
protected  ListSelectModel<V> getListSelectModel()
           
 int getSelectedIndex()
          Determines the selected index.
 int[] getSelectedIndexes()
          Determines the selected indices.
 V getSelectedValue()
          Determines the selected value.
 V[] getSelectedValues()
          Determines the selected values.
 ListSelectionPolicy<V> getSelectionPolicy()
           
 Validator<V> getValidator()
           
 V getValue()
           
 java.lang.Class<V> getValueClass()
           
 ListSelectControl.ValueRepresentationStrategy<V> getValueRepresentationStrategy()
           
 int indexOf(java.lang.Object value)
          Returns the index in this model of the first occurrence of the specified value, or -1 if this model does not contain this value.
 boolean isEmpty()
           
 boolean isIndexDisplayed(int index)
          Determines the displayed status of a given index.
 boolean isIndexEnabled(int index)
          Determines the enabled status of a given index.
 boolean isValidValue()
          Determines whether the value of this model is valid.
 boolean isValueDisplayed(V value)
          Determines the displayed status of the first occurrence of a given value.
 boolean isValueEnabled(V value)
          Determines the enabled status of the first occurrence of a given value.
 java.util.Iterator<V> iterator()
           
 int lastIndexOf(java.lang.Object value)
          Returns the index in this model of the last occurrence of the specified value, or -1 if this model does not contain this value.
 java.util.ListIterator<V> listIterator()
           
 java.util.ListIterator<V> listIterator(int index)
          Returns a list iterator of the values in this model (in proper sequence), starting at the specified position in this model.
 V remove(int index)
          Removes the value at the specified position in this model.
 boolean remove(java.lang.Object value)
          Removes the first occurrence in this model of the specified value.
 boolean removeAll(java.util.Collection<?> collection)
          Removes from this model all the values that are contained in the specified collection.
 void removeListListener(ListListener<V> listListener)
          Removes a list listener.
 void removeListSelectionListener(ListSelectionListener<V> selectionListener)
          Removes a list selection listener.
 void removeSelectedIndexes(int... indexes)
          Removes a selection at the given indices.
 boolean replace(V oldValue, V newValue)
          Replaces the first occurrence in the of the given value with its replacement.
 void reset()
          Resets the control to its default value.
 void resetValue()
          Resets the value to a default value, which may be invalid according to any installed validators.
 boolean retainAll(java.util.Collection<?> collection)
          Retains only the values in this model that are contained in the specified collection.
 V set(int index, V value)
          Replaces the value at the specified position in this model with the specified value.
 void setIndexDisplayed(int index, boolean newDisplayed)
          Sets the displayed status of a given index.
 void setIndexEnabled(int index, boolean newEnabled)
          Sets the enabled status of a given index.
 void setSelectedIndexes(int... indexes)
          Sets the selected indices.
 void setSelectedValues(V... values)
          Sets the selected values.
 void setValidator(Validator<V> newValidator)
          Sets the validator.
 void setValue(V newValue)
          Sets the input value.
 void setValueDisplayed(V value, boolean newDisplayed)
          Sets the displayed status of the first occurrence of a given value.
 void setValueEnabled(V value, boolean newEnabled)
          Sets the enabled status of the first occurrence of a given value.
 void setValueRepresentationStrategy(ListSelectControl.ValueRepresentationStrategy<V> newValueRepresentationStrategy)
          Sets the strategy used to generate a component to represent each value in the model.
 int size()
           
 java.util.List<V> subList(int fromIndex, int toIndex)
          Returns a read-only view of the portion of this model between the specified fromIndex, inclusive, and toIndex, exclusive.
 java.lang.Object[] toArray()
           
<T> T[]
toArray(T[] array)
          Returns an array containing all of the values in this model.
 boolean validate()
          Validates the user input of this component and all child components.
 void validateValue()
          Validates the value of this model, throwing an exception if the model is not valid.
 
Methods inherited from class com.guiseframework.component.AbstractCompositeStateControl
determineStatus, getEnableable, getStatus, isEnabled, setEnabled, setNotification, setStatus, updateStatus, updateValid
 
Methods inherited from class com.guiseframework.component.AbstractCompositeStateComponent
clearComponentStates, determineComponentState, getComponentState, getComponentStates, getObject, putComponentState, removeComponentState
 
Methods inherited from class com.guiseframework.component.AbstractMultipleCompositeComponent
addComponent, getChildComponents, hasChildComponents, removeComponent
 
Methods inherited from class com.guiseframework.component.AbstractCompositeComponent
addCompositeComponentListener, childComponentValidPropertyChanged, determineChildrenValid, dispatchInputEvent, dispatchInputEvent, fireChildComponentAdded, fireChildComponentAdded, fireChildComponentRemoved, fireChildComponentRemoved, initializeChildComponent, loadPreferences, removeCompositeComponentListener, resetTheme, savePreferences, uninitializeChildComponent, updateTheme, validateChildren
 
Methods inherited from class com.guiseframework.component.AbstractComponent
addCommandListener, addExportStrategy, addImportStrategy, addKeyListener, addMouseListener, addNotificationListener, addPreferenceProperty, applyTheme, applyTheme, depict, equals, exportTransfer, fireInputEvent, fireNotified, fireNotified, getAncestor, getCommandListeners, getComponentByID, getComponentByName, getComponentOrientation, getConstraints, getDepictID, getDepictor, getDescription, getDescriptionContentType, getDirtyComponents, getDirtyComponents, getEventListenerManager, getFlyoverStrategy, getGlyphURI, getInfo, getInfoContentType, getInfoModel, getInputStrategy, getKeyListeners, getLabel, getLabelContentType, getMouseListeners, getName, getNotification, getNotifications, getNotifications, getOrientation, getParent, getPreferenceProperties, getRootComponent, getTheme, hasAncestor, hasCommandListeners, hashCode, hasKeyListeners, hasMouseListeners, importTransfer, initialize, isDragEnabled, isDropEnabled, isFlyoverEnabled, isPreferenceProperty, isThemeApplied, isValid, notify, processEvent, removeCommandListener, removeExportStrategy, removeImportStrategy, removeKeyListener, removeMouseListener, removeNotificationListener, removePreferenceProperty, setConstraints, setDepicted, setDescription, setDescriptionContentType, setDragEnabled, setDropEnabled, setFlyoverEnabled, setFlyoverStrategy, setGlyphURI, setInfo, setInfoContentType, setInputStrategy, setLabel, setLabelContentType, setName, setOrientation, setParent, setThemeApplied, setValid, toString, update
 
Methods inherited from class com.guiseframework.model.ui.AbstractPresentationModel
BorderLineFarColor, BorderLineFarExtent, BorderLineFarStyle, BorderLineNearColor, BorderLineNearExtent, BorderLineNearStyle, BorderPageFarColor, BorderPageFarExtent, BorderPageFarStyle, BorderPageNearColor, BorderPageNearExtent, BorderPageNearStyle, getBackgroundColor, getBorderColor, getBorderExtent, getBorderStyle, getCornerArcSize, getCornerLineFarPageFarArcSize, getCornerLineFarPageNearArcSize, getCornerLineNearPageFarArcSize, getCornerLineNearPageNearArcSize, getCursor, getExtent, getFontFamilies, getFontSize, getFontStyle, getFontWeight, getLabelFontFamilies, getLabelFontSize, getLabelFontStyle, getLabelFontWeight, getLabelTextColor, getLineExtent, getMarginExtent, getMarginLineFarExtent, getMarginLineNearExtent, getMarginPageFarExtent, getMarginPageNearExtent, getOpacity, getPaddingExtent, getPaddingLineFarExtent, getPaddingLineNearExtent, getPaddingPageFarExtent, getPaddingPageNearExtent, getPageExtent, getStyleID, getTextColor, isDisplayed, isTooltipEnabled, isVisible, setBackgroundColor, setBorderColor, setBorderColor, setBorderExtent, setBorderExtent, setBorderLineFarColor, setBorderLineFarExtent, setBorderLineFarStyle, setBorderLineNearColor, setBorderLineNearExtent, setBorderLineNearStyle, setBorderPageFarColor, setBorderPageFarExtent, setBorderPageFarStyle, setBorderPageNearColor, setBorderPageNearExtent, setBorderPageNearStyle, setBorderStyle, setBorderStyle, setCornerArcSize, setCornerArcSize, setCornerLineFarPageFarArcSize, setCornerLineFarPageNearArcSize, setCornerLineNearPageFarArcSize, setCornerLineNearPageNearArcSize, setCursor, setDisplayed, setExtent, setFontFamilies, setFontSize, setFontStyle, setFontWeight, setLabelFontFamilies, setLabelFontSize, setLabelFontStyle, setLabelFontWeight, setLabelTextColor, setLineExtent, setMarginExtent, setMarginExtent, setMarginLineFarExtent, setMarginLineNearExtent, setMarginPageFarExtent, setMarginPageNearExtent, setOpacity, setPaddingExtent, setPaddingExtent, setPaddingLineFarExtent, setPaddingLineNearExtent, setPaddingPageFarExtent, setPaddingPageNearExtent, setPageExtent, setStyleID, setTextColor, setTooltipEnabled, setVisible
 
Methods inherited from class com.guiseframework.event.GuiseBoundPropertyObject
getSession
 
Methods inherited from class com.globalmentor.beans.BoundPropertyObject
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, createPostponedPropertyChangeEvent, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, getForwardPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeSupport, getRepeatPropertyChangeListener, getRepeatVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, getVetoableChangeSupport, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.guiseframework.component.Control
getStatus
 
Methods inherited from interface com.guiseframework.component.Component
addCommandListener, addExportStrategy, addImportStrategy, addKeyListener, addMouseListener, addNotificationListener, addPreferenceProperty, applyTheme, applyTheme, dispatchInputEvent, exportTransfer, fireInputEvent, getAncestor, getComponentOrientation, getConstraints, getDepictor, getFlyoverStrategy, getInputStrategy, getName, getNotification, getOrientation, getParent, getPreferenceProperties, getTheme, hasCommandListeners, hasKeyListeners, hasMouseListeners, importTransfer, initialize, isDragEnabled, isDropEnabled, isFlyoverEnabled, isPreferenceProperty, isThemeApplied, isValid, loadPreferences, notify, removeCommandListener, removeExportStrategy, removeImportStrategy, removeKeyListener, removeMouseListener, removeNotificationListener, removePreferenceProperty, resetTheme, savePreferences, setConstraints, setDragEnabled, setDropEnabled, setFlyoverEnabled, setFlyoverStrategy, setInputStrategy, setName, setNotification, setOrientation, setParent, setThemeApplied, updateTheme
 
Methods inherited from interface com.guiseframework.platform.DepictedObject
depict, getDepictID, getSession, processEvent
 
Methods inherited from interface com.guiseframework.model.ui.PresentationModel
BorderLineFarColor, BorderLineFarExtent, BorderLineFarStyle, BorderLineNearColor, BorderLineNearExtent, BorderLineNearStyle, BorderPageFarColor, BorderPageFarExtent, BorderPageFarStyle, BorderPageNearColor, BorderPageNearExtent, BorderPageNearStyle, getBackgroundColor, getBorderColor, getBorderExtent, getBorderStyle, getCornerArcSize, getCornerLineFarPageFarArcSize, getCornerLineFarPageNearArcSize, getCornerLineNearPageFarArcSize, getCornerLineNearPageNearArcSize, getCursor, getExtent, getFontFamilies, getFontSize, getFontStyle, getFontWeight, getLabelFontFamilies, getLabelFontSize, getLabelFontStyle, getLabelFontWeight, getLabelTextColor, getLineExtent, getMarginExtent, getMarginLineFarExtent, getMarginLineNearExtent, getMarginPageFarExtent, getMarginPageNearExtent, getOpacity, getPaddingExtent, getPaddingLineFarExtent, getPaddingLineNearExtent, getPaddingPageFarExtent, getPaddingPageNearExtent, getPageExtent, getSession, getStyleID, getTextColor, isDisplayed, isTooltipEnabled, isVisible, setBackgroundColor, setBorderColor, setBorderColor, setBorderExtent, setBorderExtent, setBorderLineFarColor, setBorderLineFarExtent, setBorderLineFarStyle, setBorderLineNearColor, setBorderLineNearExtent, setBorderLineNearStyle, setBorderPageFarColor, setBorderPageFarExtent, setBorderPageFarStyle, setBorderPageNearColor, setBorderPageNearExtent, setBorderPageNearStyle, setBorderStyle, setBorderStyle, setCornerArcSize, setCornerArcSize, setCornerLineFarPageFarArcSize, setCornerLineFarPageNearArcSize, setCornerLineNearPageFarArcSize, setCornerLineNearPageNearArcSize, setCursor, setDisplayed, setExtent, setFontFamilies, setFontSize, setFontStyle, setFontWeight, setLabelFontFamilies, setLabelFontSize, setLabelFontStyle, setLabelFontWeight, setLabelTextColor, setLineExtent, setMarginExtent, setMarginExtent, setMarginLineFarExtent, setMarginLineNearExtent, setMarginPageFarExtent, setMarginPageNearExtent, setOpacity, setPaddingExtent, setPaddingExtent, setPaddingLineFarExtent, setPaddingLineNearExtent, setPaddingPageFarExtent, setPaddingPageNearExtent, setPageExtent, setStyleID, setTextColor, setTooltipEnabled, setVisible
 
Methods inherited from interface com.guiseframework.model.InfoModel
getDescription, getDescriptionContentType, getInfo, getInfoContentType, setDescription, setDescriptionContentType, setInfo, setInfoContentType
 
Methods inherited from interface com.guiseframework.model.LabelModel
getGlyphURI, getLabel, getLabelContentType, setGlyphURI, setLabel, setLabelContentType
 
Methods inherited from interface com.globalmentor.beans.PropertyBindable
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, hasPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
 
Methods inherited from interface com.globalmentor.beans.PropertyConstrainable
addVetoableChangeListener, addVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, hasVetoableChangeListeners, removeVetoableChangeListener, removeVetoableChangeListener
 
Methods inherited from interface com.guiseframework.model.Enableable
isEnabled, setEnabled
 
Methods inherited from interface java.util.List
equals, hashCode
 

Constructor Detail

AbstractListSelectControl

public AbstractListSelectControl(ListSelectModel<V> listSelectModel,
                                 ListSelectControl.ValueRepresentationStrategy<V> valueRepresentationStrategy)
List select model and value representation strategy constructor.

Parameters:
listSelectModel - The component list select model.
valueRepresentationStrategy - The strategy to create controls to represent this model's values.
Throws:
java.lang.NullPointerException - if the given list select model and/or value representation strategy is null.
Method Detail

getListSelectModel

protected ListSelectModel<V> getListSelectModel()
Returns:
The list select model used by this component.

getValueRepresentationStrategy

public ListSelectControl.ValueRepresentationStrategy<V> getValueRepresentationStrategy()
Specified by:
getValueRepresentationStrategy in interface ListSelectControl<V>
Returns:
The strategy used to generate a component to represent each value in the model.

setValueRepresentationStrategy

public void setValueRepresentationStrategy(ListSelectControl.ValueRepresentationStrategy<V> newValueRepresentationStrategy)
Sets the strategy used to generate a component to represent each value in the model. This is a bound property

Specified by:
setValueRepresentationStrategy in interface ListSelectControl<V>
Parameters:
newValueRepresentationStrategy - The new strategy to create components to represent this model's values.
Throws:
java.lang.NullPointerException - if the provided value representation strategy is null.
See Also:
SelectControl.VALUE_REPRESENTATION_STRATEGY_PROPERTY

getComponent

public Component getComponent(V value)
Retrieves the component for the given object. If no component yet exists for the given object, one will be created. This version is provided to allow public access.

Specified by:
getComponent in interface ListSelectControl<V>
Overrides:
getComponent in class AbstractCompositeStateComponent<V,AbstractListSelectControl.ValueComponentState>
Parameters:
value - The object for which a representation component should be returned.
Returns:
The child component representing the given object.
Throws:
java.lang.IllegalArgumentException - if the given object is not an appropriate object for a component to be created.

createComponentState

protected AbstractListSelectControl.ValueComponentState createComponentState(V value)
Creates a component state to represent the given object.

Specified by:
createComponentState in class AbstractCompositeStateComponent<V,AbstractListSelectControl.ValueComponentState>
Parameters:
value - The object with which the component state is to be associated.
Returns:
The component state to represent the given object.
Throws:
java.lang.IllegalArgumentException - if the given object is not an appropriate object for a component state to be created.

firePropertyChange

protected <VV> void firePropertyChange(java.lang.String propertyName,
                                       VV oldValue,
                                       VV newValue)
Reports that a bound property has changed. This version first updates the valid status if the value is reported as being changed.

Overrides:
firePropertyChange in class com.globalmentor.beans.BoundPropertyObject
Parameters:
propertyName - The name of the property being changed.
oldValue - The old property value.
newValue - The new property value.
See Also:
BoundPropertyObject.firePropertyChange(PropertyChangeEvent), BoundPropertyObject.hasPropertyChangeListeners(String), GenericPropertyChangeEvent, GenericPropertyChangeListener

determineValid

protected boolean determineValid()
Checks the state of the component for validity. This version checks the validity of the list select model. This version performs no additional checks if the control is disabled.

Overrides:
determineValid in class AbstractCompositeComponent
Returns:
true if the component and all children passes all validity tests, else false.

validate

public boolean validate()
Validates the user input of this component and all child components. The component will be updated with error information. This version validates the associated list select model. This version performs no additional checks if the control is disabled.

Specified by:
validate in interface Component
Overrides:
validate in class AbstractCompositeComponent
Returns:
The current state of AbstractComponent.isValid() as a convenience.

reset

public void reset()
Resets the control to its default value. This version resets the control value.

Specified by:
reset in interface Control
Overrides:
reset in class AbstractCompositeStateControl<V,AbstractListSelectControl.ValueComponentState>
See Also:
resetValue()

getDefaultValue

public V getDefaultValue()
Specified by:
getDefaultValue in interface ValueModel<V>
Returns:
The default value.

getValue

public V getValue()
Specified by:
getValue in interface ValuedComponent<V>
Specified by:
getValue in interface Valued<V>
Specified by:
getValue in interface ValueModel<V>
Returns:
The input value, or null if there is no input value.

setValue

public void setValue(V newValue)
              throws java.beans.PropertyVetoException
Sets the input value. This is a bound property that only fires a change event when the new value is different via the equals() method. If a validator is installed, the value will first be validated before the current value is changed. Validation always occurs if a validator is installed, even if the value is not changing. If the value change is vetoed by the installed validator, the validation exception will be accessible via Throwable.getCause().

Specified by:
setValue in interface ValuedComponent<V>
Specified by:
setValue in interface Valued<V>
Specified by:
setValue in interface ValueModel<V>
Parameters:
newValue - The input value of the model.
Throws:
java.beans.PropertyVetoException - if the provided value is not valid or the change has otherwise been vetoed.
See Also:
getValidator(), ValueModel.VALUE_PROPERTY

clearValue

public void clearValue()
Clears the value by setting the value to null, which may be invalid according to any installed validators. No validation occurs.

Specified by:
clearValue in interface ValueModel<V>
See Also:
ValueModel.VALUE_PROPERTY

resetValue

public void resetValue()
Resets the value to a default value, which may be invalid according to any installed validators. No validation occurs.

Specified by:
resetValue in interface ValueModel<V>
See Also:
ValueModel.VALUE_PROPERTY

getValidator

public Validator<V> getValidator()
Specified by:
getValidator in interface ValueModel<V>
Returns:
The validator for this model, or null if no validator is installed.

setValidator

public void setValidator(Validator<V> newValidator)
Sets the validator. This is a bound property

Specified by:
setValidator in interface ValueModel<V>
Parameters:
newValidator - The validator for this model, or null if no validator should be used.
See Also:
ValueModel.VALIDATOR_PROPERTY

isValidValue

public boolean isValidValue()
Determines whether the value of this model is valid.

Specified by:
isValidValue in interface ValueModel<V>
Returns:
Whether the value of this model is valid.

validateValue

public void validateValue()
                   throws ValidationException
Validates the value of this model, throwing an exception if the model is not valid.

Specified by:
validateValue in interface ValueModel<V>
Throws:
ValidationException - if the value of this model is not valid.

getValueClass

public java.lang.Class<V> getValueClass()
Specified by:
getValueClass in interface ValuedComponent<V>
Specified by:
getValueClass in interface ValueModel<V>
Returns:
The class representing the type of value this model can hold.

replace

public boolean replace(V oldValue,
                       V newValue)
Replaces the first occurrence in the of the given value with its replacement. This method ensures that another thread does not change the model while the search and replace operation occurs.

Specified by:
replace in interface SelectModel<V>
Parameters:
oldValue - The value for which to search.
newValue - The replacement value.
Returns:
Whether the operation resulted in a modification of the model.

getSelectedValue

public V getSelectedValue()
Determines the selected value. This method delegates to the selection strategy. If more than one value is selected, the lead selected value will be returned.

Specified by:
getSelectedValue in interface SelectModel<V>
Returns:
The value currently selected, or null if no value is currently selected.

getSelectedValues

public V[] getSelectedValues()
Determines the selected values. This method delegates to the selection strategy.

Specified by:
getSelectedValues in interface SelectModel<V>
Returns:
The values currently selected.

setSelectedValues

public void setSelectedValues(V... values)
                       throws java.beans.PropertyVetoException
Sets the selected values. If a value occurs more than one time in the model, all occurrences of the value will be selected. Values that do not occur in the select model will be ignored. If the value change is vetoed by the installed validator, the validation exception will be accessible via Throwable.getCause(). This method delegates to the selection strategy.

Specified by:
setSelectedValues in interface SelectModel<V>
Parameters:
values - The values to select.
Throws:
java.beans.PropertyVetoException - if the provided value is not valid or the change has otherwise been vetoed.

getSelectionPolicy

public ListSelectionPolicy<V> getSelectionPolicy()
Specified by:
getSelectionPolicy in interface ListSelectModel<V>
Returns:
The selection policy for this model.

getSelectedIndex

public int getSelectedIndex()
Determines the selected index. If more than one index is selected, the lead selected index will be returned.

Specified by:
getSelectedIndex in interface ListSelectModel<V>
Returns:
The index currently selected, or -1 if no index is selected.
See Also:
getSelectedValue()

getSelectedIndexes

public int[] getSelectedIndexes()
Determines the selected indices.

Specified by:
getSelectedIndexes in interface ListSelectModel<V>
Returns:
The indices currently selected.
See Also:
getSelectedValues()

setSelectedIndexes

public void setSelectedIndexes(int... indexes)
                        throws java.beans.PropertyVetoException
Sets the selected indices. Invalid and duplicate indices will be ignored. If the value change is vetoed by the installed validator, the validation exception will be accessible via Throwable.getCause().

Specified by:
setSelectedIndexes in interface ListSelectModel<V>
Parameters:
indexes - The indices to select.
Throws:
java.beans.PropertyVetoException - if the provided value is not valid or the change has otherwise been vetoed.
See Also:
ListSelectionPolicy.getSetSelectedIndices(ListSelectModel, int[]), #setSelectedValues(V[]), addSelectedIndexes(int...)

addSelectedIndexes

public void addSelectedIndexes(int... indexes)
                        throws java.beans.PropertyVetoException
Adds a selection at the given indices. Any invalid indices will be ignored. If the value change is vetoed by the installed validator, the validation exception will be accessible via Throwable.getCause().

Specified by:
addSelectedIndexes in interface ListSelectModel<V>
Parameters:
indexes - The indices to add to the selection.
Throws:
java.beans.PropertyVetoException - if the provided value is not valid or the change has otherwise been vetoed.
See Also:
ListSelectionPolicy.getAddSelectedIndices(ListSelectModel, int[]), setSelectedIndexes(int[])

removeSelectedIndexes

public void removeSelectedIndexes(int... indexes)
                           throws java.beans.PropertyVetoException
Removes a selection at the given indices. Any invalid indices will be ignored. If the value change is vetoed by the installed validator, the validation exception will be accessible via Throwable.getCause().

Specified by:
removeSelectedIndexes in interface ListSelectModel<V>
Parameters:
indexes - The indices to remove from the selection.
Throws:
java.beans.PropertyVetoException - if the provided value is not valid or the change has otherwise been vetoed.
See Also:
ListSelectionPolicy.getRemoveSelectedIndices(ListSelectModel, int[]), setSelectedIndexes(int[])

isValueDisplayed

public boolean isValueDisplayed(V value)
Determines the displayed status of the first occurrence of a given value.

Specified by:
isValueDisplayed in interface ListSelectModel<V>
Parameters:
value - The value for which the displayed status is to be determined.
Returns:
true if the value is displayed, else false.
Throws:
java.lang.IndexOutOfBoundsException - if the given value does not occur in the model.

setValueDisplayed

public void setValueDisplayed(V value,
                              boolean newDisplayed)
Sets the displayed status of the first occurrence of a given value. This is a bound value state property.

Specified by:
setValueDisplayed in interface ListSelectModel<V>
Parameters:
value - The value to enable or disable.
newDisplayed - Whether the value should be displayed.
See Also:
Displayable.DISPLAYED_PROPERTY

isIndexDisplayed

public boolean isIndexDisplayed(int index)
Determines the displayed status of a given index.

Specified by:
isIndexDisplayed in interface ListSelectModel<V>
Parameters:
index - The index of the value for which the displayed status is to be determined.
Returns:
true if the value at the given index is displayed, else false.

setIndexDisplayed

public void setIndexDisplayed(int index,
                              boolean newDisplayed)
Sets the displayed status of a given index. This is a bound value state property.

Specified by:
setIndexDisplayed in interface ListSelectModel<V>
Parameters:
index - The index of the value to enable or disable.
newDisplayed - Whether the value at the given index should be displayed.
Throws:
java.lang.IndexOutOfBoundsException - if the given index is not within the range of the list.
See Also:
Displayable.DISPLAYED_PROPERTY

isValueEnabled

public boolean isValueEnabled(V value)
Determines the enabled status of the first occurrence of a given value.

Specified by:
isValueEnabled in interface ListSelectModel<V>
Parameters:
value - The value for which the enabled status is to be determined.
Returns:
true if the value is enabled, else false.
Throws:
java.lang.IndexOutOfBoundsException - if the given value does not occur in the model.

setValueEnabled

public void setValueEnabled(V value,
                            boolean newEnabled)
Sets the enabled status of the first occurrence of a given value. This is a bound value state property.

Specified by:
setValueEnabled in interface ListSelectModel<V>
Parameters:
value - The value to enable or disable.
newEnabled - Whether the value should be enabled.
See Also:
Enableable.ENABLED_PROPERTY

isIndexEnabled

public boolean isIndexEnabled(int index)
Determines the enabled status of a given index.

Specified by:
isIndexEnabled in interface ListSelectModel<V>
Parameters:
index - The index of the value for which the enabled status is to be determined.
Returns:
true if the value at the given index is enabled, else false.

setIndexEnabled

public void setIndexEnabled(int index,
                            boolean newEnabled)
Sets the enabled status of a given index. This is a bound value state property.

Specified by:
setIndexEnabled in interface ListSelectModel<V>
Parameters:
index - The index of the value to enable or disable.
newEnabled - Whether the value at the given index should be enabled.
Throws:
java.lang.IndexOutOfBoundsException - if the given index is not within the range of the list.
See Also:
Enableable.ENABLED_PROPERTY

addListListener

public void addListListener(ListListener<V> listListener)
Adds a list listener.

Specified by:
addListListener in interface ListListenable<V>
Specified by:
addListListener in interface ListSelectModel<V>
Parameters:
listListener - The list listener to add.

removeListListener

public void removeListListener(ListListener<V> listListener)
Removes a list listener.

Specified by:
removeListListener in interface ListListenable<V>
Specified by:
removeListListener in interface ListSelectModel<V>
Parameters:
listListener - The list listener to remove.

addListSelectionListener

public void addListSelectionListener(ListSelectionListener<V> selectionListener)
Adds a list selection listener.

Specified by:
addListSelectionListener in interface ListSelectModel<V>
Parameters:
selectionListener - The selection listener to add.

removeListSelectionListener

public void removeListSelectionListener(ListSelectionListener<V> selectionListener)
Removes a list selection listener.

Specified by:
removeListSelectionListener in interface ListSelectModel<V>
Parameters:
selectionListener - The selection listener to remove.

fireListModified

protected void fireListModified(int index,
                                V addedElement,
                                V removedElement)
Fires an event to all registered list listeners indicating the list was modified.

Parameters:
index - The index at which an element was added and/or removed, or -1 if the index is unknown.
addedElement - The element that was added to the list, or null if no element was added or it is unknown whether or which elements were added.
removedElement - The element that was removed from the list, or null if no element was removed or it is unknown whether or which elements were removed.
See Also:
ListListener, ListEvent

fireSelectionChanged

protected void fireSelectionChanged(java.lang.Integer addedIndex,
                                    java.lang.Integer removedIndex)
Fires an event to all registered selection listeners indicating the selection changed.

Parameters:
addedIndex - The index that was added to the selection, or null if no index was added or it is unknown whether or which indices were added.
removedIndex - The index that was removed from the list, or null if no index was removed or it is unknown whether or which indices were removed.
See Also:
ListSelectionListener, ListSelectionEvent

size

public int size()
Specified by:
size in interface java.util.Collection<V>
Specified by:
size in interface java.util.List<V>
Returns:
The number of values in the model.

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.Collection<V>
Specified by:
isEmpty in interface java.util.List<V>
Returns:
Whether this model contains no values.

contains

public boolean contains(java.lang.Object value)
Determines whether this model contains the specified value.

Specified by:
contains in interface java.util.Collection<V>
Specified by:
contains in interface java.util.List<V>
Parameters:
value - The value the presence of which to test.
Returns:
true if this model contains the specified value.

iterator

public java.util.Iterator<V> iterator()
Specified by:
iterator in interface java.lang.Iterable<V>
Specified by:
iterator in interface java.util.Collection<V>
Specified by:
iterator in interface java.util.List<V>
Returns:
An iterator over the values in this model.

toArray

public java.lang.Object[] toArray()
Specified by:
toArray in interface java.util.Collection<V>
Specified by:
toArray in interface java.util.List<V>
Returns:
An array containing all of the values in this model.

toArray

public <T> T[] toArray(T[] array)
Returns an array containing all of the values in this model.

Specified by:
toArray in interface java.util.Collection<V>
Specified by:
toArray in interface java.util.List<V>
Parameters:
array - The array into which the value of this collection are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.
Returns:
An array containing the values of this model.
Throws:
java.lang.ArrayStoreException - if the runtime type of the specified array is not a supertype of the runtime type of every value in this model.
java.lang.NullPointerException - if the specified array is null.

add

public boolean add(V value)
Appends the specified value to the end of this model. This version delegates to add(int, Object).

Specified by:
add in interface java.util.Collection<V>
Specified by:
add in interface java.util.List<V>
Parameters:
value - The value to be appended to this model.
Returns:
true, indicating that the model changed as a result of the operation.

remove

public boolean remove(java.lang.Object value)
Removes the first occurrence in this model of the specified value.

Specified by:
remove in interface java.util.Collection<V>
Specified by:
remove in interface java.util.List<V>
Parameters:
value - The value to be removed from this model, if present.
Returns:
true if this model contained the specified value.

containsAll

public boolean containsAll(java.util.Collection<?> collection)
Determines if this model contains all of the values of the specified collection.

Specified by:
containsAll in interface java.util.Collection<V>
Specified by:
containsAll in interface java.util.List<V>
Parameters:
collection - The collection to be checked for containment in this model.
Returns:
true if this model contains all of the values of the specified collection.
Throws:
java.lang.NullPointerException - if the specified collection is null.
See Also:
contains(Object)

addAll

public boolean addAll(java.util.Collection<? extends V> collection)
Appends all of the values in the specified collection to the end of this model, in the order that they are returned by the specified collection's iterator.

Specified by:
addAll in interface java.util.Collection<V>
Specified by:
addAll in interface java.util.List<V>
Parameters:
collection - The collection the values of which are to be added to this model.
Returns:
true if this model changed as a result of the call.
Throws:
java.lang.NullPointerException - if the specified collection is null.
See Also:
add(Object)

addAll

public boolean addAll(int index,
                      java.util.Collection<? extends V> collection)
Inserts all of the values in the specified collection into this model at the specified position.

Specified by:
addAll in interface java.util.List<V>
Parameters:
index - The index at which to insert first value from the specified collection.
collection - The values to be inserted into this model.
Returns:
true if this model changed as a result of the call.
Throws:
java.lang.NullPointerException - if the specified collection is null.
java.lang.IndexOutOfBoundsException - if the index is out of range (index < 0 || index > size()).

removeAll

public boolean removeAll(java.util.Collection<?> collection)
Removes from this model all the values that are contained in the specified collection.

Specified by:
removeAll in interface java.util.Collection<V>
Specified by:
removeAll in interface java.util.List<V>
Parameters:
collection - The collection that defines which values will be removed from this model.
Returns:
true if this model changed as a result of the call.
Throws:
java.lang.NullPointerException - if the specified collection is null.
See Also:
remove(Object), contains(Object)

retainAll

public boolean retainAll(java.util.Collection<?> collection)
Retains only the values in this model that are contained in the specified collection.

Specified by:
retainAll in interface java.util.Collection<V>
Specified by:
retainAll in interface java.util.List<V>
Parameters:
collection - The collection that defines which values this model will retain.
Returns:
true if this model changed as a result of the call.
Throws:
java.lang.NullPointerException - if the specified collection is null.
See Also:
remove(Object), contains(Object)

clear

public void clear()
Removes all of the values from this model.

Specified by:
clear in interface java.util.Collection<V>
Specified by:
clear in interface java.util.List<V>

get

public V get(int index)
Returns the value at the specified position in this model.

Specified by:
get in interface java.util.List<V>
Parameters:
index - The index of the value to return.
Returns:
The value at the specified position in this model.
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size()).

set

public V set(int index,
             V value)
Replaces the value at the specified position in this model with the specified value.

Specified by:
set in interface java.util.List<V>
Parameters:
index - The index of the value to replace.
value - The value to be stored at the specified position.
Returns:
The value at the specified position.
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size()).

add

public void add(int index,
                V value)
Inserts the specified value at the specified position in this model.

Specified by:
add in interface java.util.List<V>
Parameters:
index - The index at which the specified value is to be inserted.
value - The value to be inserted.
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range (index < 0 || index > size()).

remove

public V remove(int index)
Removes the value at the specified position in this model.

Specified by:
remove in interface java.util.List<V>
Parameters:
index - The index of the value to removed.
Returns:
The value previously at the specified position.
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size()).

indexOf

public int indexOf(java.lang.Object value)
Returns the index in this model of the first occurrence of the specified value, or -1 if this model does not contain this value.

Specified by:
indexOf in interface java.util.List<V>
Parameters:
value - The value for which to search.
Returns:
The index in this model of the first occurrence of the specified value, or -1 if this model does not contain this value.

lastIndexOf

public int lastIndexOf(java.lang.Object value)
Returns the index in this model of the last occurrence of the specified value, or -1 if this model does not contain this value.

Specified by:
lastIndexOf in interface java.util.List<V>
Parameters:
value - The value for which to search.
Returns:
The index in this model of the last occurrence of the specified value, or -1 if this model does not contain this value.

listIterator

public java.util.ListIterator<V> listIterator()
Specified by:
listIterator in interface java.util.List<V>
Returns:
A read-only list iterator of the values in this model (in proper sequence).

listIterator

public java.util.ListIterator<V> listIterator(int index)
Returns a list iterator of the values in this model (in proper sequence), starting at the specified position in this model.

Specified by:
listIterator in interface java.util.List<V>
Parameters:
index - The index of first value to be returned from the list iterator (by a call to the next() method).
Returns:
A list iterator of the values in this model (in proper sequence), starting at the specified position in this model.
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range (index < 0 || index > size()).

subList

public java.util.List<V> subList(int fromIndex,
                                 int toIndex)
Returns a read-only view of the portion of this model between the specified fromIndex, inclusive, and toIndex, exclusive.

Specified by:
subList in interface java.util.List<V>
Parameters:
fromIndex - The low endpoint (inclusive) of the sub-list.
toIndex - The high endpoint (exclusive) of the sub-list.
Returns:
A view of the specified range within this model.
Throws:
java.lang.IndexOutOfBoundsException - for an illegal endpoint index value (fromIndex < 0 || toIndex > size() || fromIndex > toIndex).


Copyright © 2005-2010 GlobalMentor, Inc. All Rights Reserved.