groovy.util
Class ObservableList
java.lang.Object
groovy.util.ObservableList
- All Implemented Interfaces:
- java.lang.Iterable, java.util.Collection, java.util.List
public class ObservableList
- extends java.lang.Object
- implements java.util.List
List decorator that will trigger PropertyChangeEvents when a value changes.
An optional Closure may be specified and will work as a filter, if it returns true the property
will trigger an event (if the value indeed changed), otherwise it won't. The Closure may receive
1 or 2 parameters, the single one being the value, the other one both the key and value, for
example:
// skip all properties whose value is a closure
def map = new ObservableList( {!(it instanceof Closure)} )
<p/>
// skip all properties whose name matches a regex
def map = new ObservableList( { name, value -> !(name =˜ /[A-Z+]/) } )
The current implementation will trigger specialized events in the following scenarios, you need
not register a different listener as those events extend from PropertyChangeEvent
- ObservableList.ElementAddedEvent - a new element is added to the list
- ObservableList.ElementRemovedEvent - an element is removed from the list
- ObservableList.ElementUpdatedEvent - an element changes value (same as regular
PropertyChangeEvent)
- ObservableList.ElementClearedEvent - all elements have been removed from the list
- ObservableList.MultiElementAddedEvent - triggered by calling list.addAll()
- ObservableList.MultiElementRemovedEvent - triggered by calling
list.removeAll()/list.retainAll()
Bound properties
- content - read-only.
- size - read-only.
Method Summary |
void |
add(int index,
java.lang.Object element)
|
boolean |
add(java.lang.Object o)
|
boolean |
addAll(java.util.Collection c)
|
boolean |
addAll(int index,
java.util.Collection c)
|
void |
addPropertyChangeListener(java.beans.PropertyChangeListener listener)
|
void |
addPropertyChangeListener(java.lang.String propertyName,
java.beans.PropertyChangeListener listener)
|
void |
clear()
|
boolean |
contains(java.lang.Object o)
|
boolean |
containsAll(java.util.Collection c)
|
boolean |
equals(java.lang.Object o)
|
protected void |
fireElementAddedEvent(int index,
java.lang.Object element)
|
protected void |
fireElementClearedEvent(java.util.List values)
|
protected void |
fireElementEvent(ObservableList.ElementEvent event)
|
protected void |
fireElementRemovedEvent(int index,
java.lang.Object element)
|
protected void |
fireElementUpdatedEvent(int index,
java.lang.Object oldValue,
java.lang.Object newValue)
|
protected void |
fireMultiElementAddedEvent(int index,
java.util.List values)
|
protected void |
fireMultiElementRemovedEvent(java.util.List values)
|
protected void |
fireSizeChangedEvent(int oldValue,
int newValue)
|
java.lang.Object |
get(int index)
|
java.util.List |
getContent()
|
protected java.util.List |
getDelegateList()
|
java.beans.PropertyChangeListener[] |
getPropertyChangeListeners()
|
java.beans.PropertyChangeListener[] |
getPropertyChangeListeners(java.lang.String propertyName)
|
int |
getSize()
|
protected Closure |
getTest()
|
int |
hashCode()
|
boolean |
hasListeners(java.lang.String propertyName)
|
int |
indexOf(java.lang.Object o)
|
boolean |
isEmpty()
|
java.util.Iterator |
iterator()
|
int |
lastIndexOf(java.lang.Object o)
|
java.util.ListIterator |
listIterator()
|
java.util.ListIterator |
listIterator(int index)
|
java.lang.Object |
remove(int index)
|
boolean |
remove(java.lang.Object o)
|
boolean |
removeAll(java.util.Collection c)
|
void |
removePropertyChangeListener(java.beans.PropertyChangeListener listener)
|
void |
removePropertyChangeListener(java.lang.String propertyName,
java.beans.PropertyChangeListener listener)
|
boolean |
retainAll(java.util.Collection c)
|
java.lang.Object |
set(int index,
java.lang.Object element)
|
int |
size()
|
java.util.List |
subList(int fromIndex,
int toIndex)
|
java.lang.Object[] |
toArray()
|
java.lang.Object[] |
toArray(java.lang.Object[] a)
|
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
SIZE_PROPERTY
public static final java.lang.String SIZE_PROPERTY
- See Also:
- Constant Field Values
CONTENT_PROPERTY
public static final java.lang.String CONTENT_PROPERTY
- See Also:
- Constant Field Values
ObservableList
public ObservableList()
ObservableList
public ObservableList(java.util.List delegate)
ObservableList
public ObservableList(Closure test)
ObservableList
public ObservableList(java.util.List delegate,
Closure test)
getContent
public java.util.List getContent()
getDelegateList
protected java.util.List getDelegateList()
getTest
protected Closure getTest()
fireElementAddedEvent
protected void fireElementAddedEvent(int index,
java.lang.Object element)
fireMultiElementAddedEvent
protected void fireMultiElementAddedEvent(int index,
java.util.List values)
fireElementClearedEvent
protected void fireElementClearedEvent(java.util.List values)
fireElementRemovedEvent
protected void fireElementRemovedEvent(int index,
java.lang.Object element)
fireMultiElementRemovedEvent
protected void fireMultiElementRemovedEvent(java.util.List values)
fireElementUpdatedEvent
protected void fireElementUpdatedEvent(int index,
java.lang.Object oldValue,
java.lang.Object newValue)
fireElementEvent
protected void fireElementEvent(ObservableList.ElementEvent event)
fireSizeChangedEvent
protected void fireSizeChangedEvent(int oldValue,
int newValue)
add
public void add(int index,
java.lang.Object element)
- Specified by:
add
in interface java.util.List
add
public boolean add(java.lang.Object o)
- Specified by:
add
in interface java.util.Collection
- Specified by:
add
in interface java.util.List
addAll
public boolean addAll(java.util.Collection c)
- Specified by:
addAll
in interface java.util.Collection
- Specified by:
addAll
in interface java.util.List
addAll
public boolean addAll(int index,
java.util.Collection c)
- Specified by:
addAll
in interface java.util.List
clear
public void clear()
- Specified by:
clear
in interface java.util.Collection
- Specified by:
clear
in interface java.util.List
contains
public boolean contains(java.lang.Object o)
- Specified by:
contains
in interface java.util.Collection
- Specified by:
contains
in interface java.util.List
containsAll
public boolean containsAll(java.util.Collection c)
- Specified by:
containsAll
in interface java.util.Collection
- Specified by:
containsAll
in interface java.util.List
equals
public boolean equals(java.lang.Object o)
- Specified by:
equals
in interface java.util.Collection
- Specified by:
equals
in interface java.util.List
- Overrides:
equals
in class java.lang.Object
get
public java.lang.Object get(int index)
- Specified by:
get
in interface java.util.List
hashCode
public int hashCode()
- Specified by:
hashCode
in interface java.util.Collection
- Specified by:
hashCode
in interface java.util.List
- Overrides:
hashCode
in class java.lang.Object
indexOf
public int indexOf(java.lang.Object o)
- Specified by:
indexOf
in interface java.util.List
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interface java.util.Collection
- Specified by:
isEmpty
in interface java.util.List
iterator
public java.util.Iterator iterator()
- Specified by:
iterator
in interface java.lang.Iterable
- Specified by:
iterator
in interface java.util.Collection
- Specified by:
iterator
in interface java.util.List
lastIndexOf
public int lastIndexOf(java.lang.Object o)
- Specified by:
lastIndexOf
in interface java.util.List
listIterator
public java.util.ListIterator listIterator()
- Specified by:
listIterator
in interface java.util.List
listIterator
public java.util.ListIterator listIterator(int index)
- Specified by:
listIterator
in interface java.util.List
remove
public java.lang.Object remove(int index)
- Specified by:
remove
in interface java.util.List
remove
public boolean remove(java.lang.Object o)
- Specified by:
remove
in interface java.util.Collection
- Specified by:
remove
in interface java.util.List
removeAll
public boolean removeAll(java.util.Collection c)
- Specified by:
removeAll
in interface java.util.Collection
- Specified by:
removeAll
in interface java.util.List
retainAll
public boolean retainAll(java.util.Collection c)
- Specified by:
retainAll
in interface java.util.Collection
- Specified by:
retainAll
in interface java.util.List
set
public java.lang.Object set(int index,
java.lang.Object element)
- Specified by:
set
in interface java.util.List
size
public int size()
- Specified by:
size
in interface java.util.Collection
- Specified by:
size
in interface java.util.List
getSize
public int getSize()
subList
public java.util.List subList(int fromIndex,
int toIndex)
- Specified by:
subList
in interface java.util.List
toArray
public java.lang.Object[] toArray()
- Specified by:
toArray
in interface java.util.Collection
- Specified by:
toArray
in interface java.util.List
toArray
public java.lang.Object[] toArray(java.lang.Object[] a)
- Specified by:
toArray
in interface java.util.Collection
- Specified by:
toArray
in interface java.util.List
addPropertyChangeListener
public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
addPropertyChangeListener
public void addPropertyChangeListener(java.lang.String propertyName,
java.beans.PropertyChangeListener listener)
getPropertyChangeListeners
public java.beans.PropertyChangeListener[] getPropertyChangeListeners()
getPropertyChangeListeners
public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String propertyName)
removePropertyChangeListener
public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
removePropertyChangeListener
public void removePropertyChangeListener(java.lang.String propertyName,
java.beans.PropertyChangeListener listener)
hasListeners
public boolean hasListeners(java.lang.String propertyName)