com.guiseframework.model
Class DefaultListSelectModel<V>

java.lang.Object
  extended by com.globalmentor.beans.BoundPropertyObject
      extended by com.guiseframework.model.AbstractModel
          extended by com.guiseframework.model.AbstractValueModel<V>
              extended by com.guiseframework.model.DefaultListSelectModel<V>
Type Parameters:
V - The type of values contained in the model.
All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable, ListListenable<V>, ListSelectModel<V>, Model, SelectModel<V>, Valued<V>, ValueModel<V>, java.lang.Iterable<V>, java.util.Collection<V>, java.util.List<V>
Direct Known Subclasses:
AbstractListSelectTableModel

public class DefaultListSelectModel<V>
extends AbstractValueModel<V>
implements ListSelectModel<V>

The default implementation of a model for selecting one or more values from a list. The model is thread-safe, synchronized on itself. Any iteration over values should include synchronization on the instance of this class. This implementation has a default value of null.

Author:
Garret Wilson

Nested Class Summary
protected  class DefaultListSelectModel.ValueState
          An encapsulation of the state of a value in the model.
 
Field Summary
 
Fields inherited from class com.globalmentor.beans.BoundPropertyObject
NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS
 
Fields inherited from interface com.guiseframework.model.ValueModel
VALIDATOR_PROPERTY, VALUE_PROPERTY
 
Fields inherited from interface com.guiseframework.model.Model
PLAIN_TEXT_CONTENT_TYPE, XHTML_CONTENT_TYPE, XHTML_FRAGMENT_CONTENT_TYPE
 
Constructor Summary
DefaultListSelectModel(java.lang.Class<V> valueClass)
          Constructs a list select model indicating the type of values it can hold, using a default multiple selection strategy.
DefaultListSelectModel(java.lang.Class<V> valueClass, ListSelectionPolicy<V> listSelectionStrategy)
          Constructs a list select model indicating the type of values it can hold.
 
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  void fireListModified(int index, V addedElement, V removedElement)
          Fires an event to all registered list listeners indicating the list was modified.
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.
 V getDefaultValue()
           
 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()
           
 V getValue()
           
 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 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.
protected  void listModified(int index, V addedElement, V removedElement)
          Called when the list is modified.
 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 of the given value with its replacement.
 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 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.
 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.
 
Methods inherited from class com.guiseframework.model.AbstractValueModel
createPropertyVetoException, getValidator, getValueClass, isValidValue, setValidator, validateValue
 
Methods inherited from class com.guiseframework.model.AbstractModel
getEventListenerManager, getPlainText
 
Methods inherited from class com.globalmentor.beans.BoundPropertyObject
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, createPostponedPropertyChangeEvent, firePropertyChange, 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, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.guiseframework.model.ValueModel
getValidator, getValueClass, isValidValue, setValidator, validateValue
 
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 java.util.List
equals, hashCode
 

Constructor Detail

DefaultListSelectModel

public DefaultListSelectModel(java.lang.Class<V> valueClass)
Constructs a list select model indicating the type of values it can hold, using a default multiple selection strategy.

Parameters:
valueClass - The class indicating the type of values held in the model.
Throws:
java.lang.NullPointerException - if the given value class is null.

DefaultListSelectModel

public DefaultListSelectModel(java.lang.Class<V> valueClass,
                              ListSelectionPolicy<V> listSelectionStrategy)
Constructs a list select model indicating the type of values it can hold. The selection strategy is not added as a listener to this model but is rather notified manually so that the event won't be delayed and/or sent out of order

Parameters:
valueClass - The class indicating the type of values held in the model.
listSelectionStrategy - The strategy for selecting values in the model.
Throws:
java.lang.NullPointerException - if the given value class and/or selection strategy is null.
Method Detail

getDefaultValue

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

getValue

public V getValue()
Specified by:
getValue in interface Valued<V>
Specified by:
getValue in interface ValueModel<V>
Returns:
The selected value, or null if there is no selected 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 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:
AbstractValueModel.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. This implementation calls clearValue().

Specified by:
resetValue in interface ValueModel<V>
See Also:
ValueModel.VALUE_PROPERTY, clearValue()

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. This version delegates to remove(int).

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 vale, 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).

replace

public boolean replace(V oldValue,
                       V newValue)
Replaces the first occurrence 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.

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[])

getSelectedValue

public V getSelectedValue()
Determines the selected value. 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.
See Also:
getSelectedIndex()

getSelectedValues

public V[] getSelectedValues()
Determines the selected values.

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

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().

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.
See Also:
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 display.
newDisplayed - Whether the value should be displayed.
See Also:
#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 display.
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:
#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:
#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:
#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.

listModified

protected void listModified(int index,
                            V addedElement,
                            V removedElement)
Called when the list is modified. This method calls the method for notifying listeners that 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:
fireListModified(int, Object, Object)

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


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