[Java] Class ObservableList
- groovy.util.ObservableList
-
All Implemented Interfaces and Traits:
-
List
public class ObservableList
extends Object
implements 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
Field Summary
Constructor Summary
Methods Summary
Methods
Type Params |
Return Type |
Name and description |
|
public void |
add(int index, Object element)
|
|
public boolean |
add(Object o)
|
|
public boolean |
addAll(Collection c)
|
|
public boolean |
addAll(int index, Collection c)
|
|
public void |
addPropertyChangeListener(PropertyChangeListener listener)
|
|
public void |
addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
|
|
public void |
clear()
|
|
public boolean |
contains(Object o)
|
|
public boolean |
containsAll(Collection c)
|
|
public boolean |
equals(Object o)
|
|
protected void |
fireElementAddedEvent(int index, Object element)
|
|
protected void |
fireElementClearedEvent(List values)
|
|
protected void |
fireElementEvent(ElementEvent event)
|
|
protected void |
fireElementRemovedEvent(int index, Object element)
|
|
protected void |
fireElementUpdatedEvent(int index, Object oldValue, Object newValue)
|
|
protected void |
fireMultiElementAddedEvent(int index, List values)
|
|
protected void |
fireMultiElementRemovedEvent(List values)
|
|
protected void |
fireSizeChangedEvent(int oldValue, int newValue)
|
|
public Object |
get(int index)
|
|
public List |
getContent()
|
|
protected List |
getDelegateList()
|
|
public PropertyChangeListener[] |
getPropertyChangeListeners()
|
|
public PropertyChangeListener[] |
getPropertyChangeListeners(String propertyName)
|
|
public int |
getSize()
|
|
protected Closure |
getTest()
|
|
public boolean |
hasListeners(String propertyName)
|
|
public int |
hashCode()
|
|
public int |
indexOf(Object o)
|
|
public boolean |
isEmpty()
|
|
public Iterator |
iterator()
|
|
public int |
lastIndexOf(Object o)
|
|
public ListIterator |
listIterator()
|
|
public ListIterator |
listIterator(int index)
|
|
public Object |
remove(int index)
|
|
public boolean |
remove(Object o)
|
|
public boolean |
removeAll(Collection c)
|
|
public void |
removePropertyChangeListener(PropertyChangeListener listener)
|
|
public void |
removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
|
|
public boolean |
retainAll(Collection c)
|
|
public Object |
set(int index, Object element)
|
|
public int |
size()
|
|
public List |
subList(int fromIndex, int toIndex)
|
|
public Object[] |
toArray()
|
|
public Object[] |
toArray(Object[] a)
|
Inherited Methods Summary
Field Detail
public static final String CONTENT_PROPERTY
public static final String SIZE_PROPERTY
Constructor Detail
public ObservableList()
public ObservableList(List delegate)
public ObservableList(Closure test)
public ObservableList(List delegate, Closure test)
Method Detail
@Override public void add(int index, Object element)
@Override public boolean addAll(int index, Collection c)
public void addPropertyChangeListener(PropertyChangeListener listener)
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
@Override public void clear()
@Override public boolean contains(Object o)
protected void fireElementAddedEvent(int index, Object element)
protected void fireElementClearedEvent(List values)
protected void fireElementEvent(ElementEvent event)
protected void fireElementRemovedEvent(int index, Object element)
protected void fireElementUpdatedEvent(int index, Object oldValue, Object newValue)
protected void fireMultiElementAddedEvent(int index, List values)
protected void fireMultiElementRemovedEvent(List values)
protected void fireSizeChangedEvent(int oldValue, int newValue)
public List getContent()
protected List getDelegateList()
public int getSize()
protected Closure getTest()
public boolean hasListeners(String propertyName)
@Override public int hashCode()
@Override public boolean isEmpty()
public void removePropertyChangeListener(PropertyChangeListener listener)
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
@Override public int size()
@Override public List subList(int fromIndex, int toIndex)