Package 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)} ) // 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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ObservableList.ChangeType
static class
ObservableList.ElementAddedEvent
static class
ObservableList.ElementClearedEvent
static class
ObservableList.ElementEvent
static class
ObservableList.ElementRemovedEvent
static class
ObservableList.ElementUpdatedEvent
static class
ObservableList.MultiElementAddedEvent
static class
ObservableList.MultiElementRemovedEvent
protected class
ObservableList.ObservableIterator
protected class
ObservableList.ObservableListIterator
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CONTENT_PROPERTY
static java.lang.String
SIZE_PROPERTY
-
Constructor Summary
Constructors Constructor Description ObservableList()
ObservableList(Closure test)
ObservableList(java.util.List delegate)
ObservableList(java.util.List delegate, Closure test)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(int index, java.lang.Object element)
boolean
add(java.lang.Object o)
boolean
addAll(int index, java.util.Collection c)
boolean
addAll(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)
-
-
-
Field Detail
-
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
-
-
Method Detail
-
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 interfacejava.util.List
-
add
public boolean add(java.lang.Object o)
- Specified by:
add
in interfacejava.util.Collection
- Specified by:
add
in interfacejava.util.List
-
addAll
public boolean addAll(java.util.Collection c)
- Specified by:
addAll
in interfacejava.util.Collection
- Specified by:
addAll
in interfacejava.util.List
-
addAll
public boolean addAll(int index, java.util.Collection c)
- Specified by:
addAll
in interfacejava.util.List
-
clear
public void clear()
- Specified by:
clear
in interfacejava.util.Collection
- Specified by:
clear
in interfacejava.util.List
-
contains
public boolean contains(java.lang.Object o)
- Specified by:
contains
in interfacejava.util.Collection
- Specified by:
contains
in interfacejava.util.List
-
containsAll
public boolean containsAll(java.util.Collection c)
- Specified by:
containsAll
in interfacejava.util.Collection
- Specified by:
containsAll
in interfacejava.util.List
-
equals
public boolean equals(java.lang.Object o)
- Specified by:
equals
in interfacejava.util.Collection
- Specified by:
equals
in interfacejava.util.List
- Overrides:
equals
in classjava.lang.Object
-
get
public java.lang.Object get(int index)
- Specified by:
get
in interfacejava.util.List
-
hashCode
public int hashCode()
- Specified by:
hashCode
in interfacejava.util.Collection
- Specified by:
hashCode
in interfacejava.util.List
- Overrides:
hashCode
in classjava.lang.Object
-
indexOf
public int indexOf(java.lang.Object o)
- Specified by:
indexOf
in interfacejava.util.List
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfacejava.util.Collection
- Specified by:
isEmpty
in interfacejava.util.List
-
iterator
public java.util.Iterator iterator()
- Specified by:
iterator
in interfacejava.util.Collection
- Specified by:
iterator
in interfacejava.lang.Iterable
- Specified by:
iterator
in interfacejava.util.List
-
lastIndexOf
public int lastIndexOf(java.lang.Object o)
- Specified by:
lastIndexOf
in interfacejava.util.List
-
listIterator
public java.util.ListIterator listIterator()
- Specified by:
listIterator
in interfacejava.util.List
-
listIterator
public java.util.ListIterator listIterator(int index)
- Specified by:
listIterator
in interfacejava.util.List
-
remove
public java.lang.Object remove(int index)
- Specified by:
remove
in interfacejava.util.List
-
remove
public boolean remove(java.lang.Object o)
- Specified by:
remove
in interfacejava.util.Collection
- Specified by:
remove
in interfacejava.util.List
-
removeAll
public boolean removeAll(java.util.Collection c)
- Specified by:
removeAll
in interfacejava.util.Collection
- Specified by:
removeAll
in interfacejava.util.List
-
retainAll
public boolean retainAll(java.util.Collection c)
- Specified by:
retainAll
in interfacejava.util.Collection
- Specified by:
retainAll
in interfacejava.util.List
-
set
public java.lang.Object set(int index, java.lang.Object element)
- Specified by:
set
in interfacejava.util.List
-
size
public int size()
- Specified by:
size
in interfacejava.util.Collection
- Specified by:
size
in interfacejava.util.List
-
getSize
public int getSize()
-
subList
public java.util.List subList(int fromIndex, int toIndex)
- Specified by:
subList
in interfacejava.util.List
-
toArray
public java.lang.Object[] toArray()
- Specified by:
toArray
in interfacejava.util.Collection
- Specified by:
toArray
in interfacejava.util.List
-
toArray
public java.lang.Object[] toArray(java.lang.Object[] a)
- Specified by:
toArray
in interfacejava.util.Collection
- Specified by:
toArray
in interfacejava.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)
-
-