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.ListList 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 classObservableList.ChangeTypestatic classObservableList.ElementAddedEventstatic classObservableList.ElementClearedEventstatic classObservableList.ElementEventstatic classObservableList.ElementRemovedEventstatic classObservableList.ElementUpdatedEventstatic classObservableList.MultiElementAddedEventstatic classObservableList.MultiElementRemovedEventprotected classObservableList.ObservableIteratorprotected classObservableList.ObservableListIterator
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringCONTENT_PROPERTYstatic java.lang.StringSIZE_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 voidadd(int index, java.lang.Object element)booleanadd(java.lang.Object o)booleanaddAll(int index, java.util.Collection c)booleanaddAll(java.util.Collection c)voidaddPropertyChangeListener(java.beans.PropertyChangeListener listener)voidaddPropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)voidclear()booleancontains(java.lang.Object o)booleancontainsAll(java.util.Collection c)booleanequals(java.lang.Object o)protected voidfireElementAddedEvent(int index, java.lang.Object element)protected voidfireElementClearedEvent(java.util.List values)protected voidfireElementEvent(ObservableList.ElementEvent event)protected voidfireElementRemovedEvent(int index, java.lang.Object element)protected voidfireElementUpdatedEvent(int index, java.lang.Object oldValue, java.lang.Object newValue)protected voidfireMultiElementAddedEvent(int index, java.util.List values)protected voidfireMultiElementRemovedEvent(java.util.List values)protected voidfireSizeChangedEvent(int oldValue, int newValue)java.lang.Objectget(int index)java.util.ListgetContent()protected java.util.ListgetDelegateList()java.beans.PropertyChangeListener[]getPropertyChangeListeners()java.beans.PropertyChangeListener[]getPropertyChangeListeners(java.lang.String propertyName)intgetSize()protected ClosuregetTest()inthashCode()booleanhasListeners(java.lang.String propertyName)intindexOf(java.lang.Object o)booleanisEmpty()java.util.Iteratoriterator()intlastIndexOf(java.lang.Object o)java.util.ListIteratorlistIterator()java.util.ListIteratorlistIterator(int index)java.lang.Objectremove(int index)booleanremove(java.lang.Object o)booleanremoveAll(java.util.Collection c)voidremovePropertyChangeListener(java.beans.PropertyChangeListener listener)voidremovePropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)booleanretainAll(java.util.Collection c)java.lang.Objectset(int index, java.lang.Object element)intsize()java.util.ListsubList(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:
addin interfacejava.util.List
-
add
public boolean add(java.lang.Object o)
- Specified by:
addin interfacejava.util.Collection- Specified by:
addin interfacejava.util.List
-
addAll
public boolean addAll(java.util.Collection c)
- Specified by:
addAllin interfacejava.util.Collection- Specified by:
addAllin interfacejava.util.List
-
addAll
public boolean addAll(int index, java.util.Collection c)- Specified by:
addAllin interfacejava.util.List
-
clear
public void clear()
- Specified by:
clearin interfacejava.util.Collection- Specified by:
clearin interfacejava.util.List
-
contains
public boolean contains(java.lang.Object o)
- Specified by:
containsin interfacejava.util.Collection- Specified by:
containsin interfacejava.util.List
-
containsAll
public boolean containsAll(java.util.Collection c)
- Specified by:
containsAllin interfacejava.util.Collection- Specified by:
containsAllin interfacejava.util.List
-
equals
public boolean equals(java.lang.Object o)
- Specified by:
equalsin interfacejava.util.Collection- Specified by:
equalsin interfacejava.util.List- Overrides:
equalsin classjava.lang.Object
-
get
public java.lang.Object get(int index)
- Specified by:
getin interfacejava.util.List
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfacejava.util.Collection- Specified by:
hashCodein interfacejava.util.List- Overrides:
hashCodein classjava.lang.Object
-
indexOf
public int indexOf(java.lang.Object o)
- Specified by:
indexOfin interfacejava.util.List
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfacejava.util.Collection- Specified by:
isEmptyin interfacejava.util.List
-
iterator
public java.util.Iterator iterator()
- Specified by:
iteratorin interfacejava.util.Collection- Specified by:
iteratorin interfacejava.lang.Iterable- Specified by:
iteratorin interfacejava.util.List
-
lastIndexOf
public int lastIndexOf(java.lang.Object o)
- Specified by:
lastIndexOfin interfacejava.util.List
-
listIterator
public java.util.ListIterator listIterator()
- Specified by:
listIteratorin interfacejava.util.List
-
listIterator
public java.util.ListIterator listIterator(int index)
- Specified by:
listIteratorin interfacejava.util.List
-
remove
public java.lang.Object remove(int index)
- Specified by:
removein interfacejava.util.List
-
remove
public boolean remove(java.lang.Object o)
- Specified by:
removein interfacejava.util.Collection- Specified by:
removein interfacejava.util.List
-
removeAll
public boolean removeAll(java.util.Collection c)
- Specified by:
removeAllin interfacejava.util.Collection- Specified by:
removeAllin interfacejava.util.List
-
retainAll
public boolean retainAll(java.util.Collection c)
- Specified by:
retainAllin interfacejava.util.Collection- Specified by:
retainAllin interfacejava.util.List
-
set
public java.lang.Object set(int index, java.lang.Object element)- Specified by:
setin interfacejava.util.List
-
size
public int size()
- Specified by:
sizein interfacejava.util.Collection- Specified by:
sizein interfacejava.util.List
-
getSize
public int getSize()
-
subList
public java.util.List subList(int fromIndex, int toIndex)- Specified by:
subListin interfacejava.util.List
-
toArray
public java.lang.Object[] toArray()
- Specified by:
toArrayin interfacejava.util.Collection- Specified by:
toArrayin interfacejava.util.List
-
toArray
public java.lang.Object[] toArray(java.lang.Object[] a)
- Specified by:
toArrayin interfacejava.util.Collection- Specified by:
toArrayin 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)
-
-