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 - a element is removed from the list
- ObservableList.ElementUpdatedEvent - a 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.MultiElementRemoveedEvent - triggered by calling
list.removeAll()/list.retainAll()
- Author:
- Andres Almiray
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
ObservableList
public ObservableList()
ObservableList
public ObservableList(java.util.List delegate)
ObservableList
public ObservableList(Closure test)
ObservableList
public ObservableList(java.util.List delegate,
Closure test)
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
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)