Package groovy.util
Class ObservableList
java.lang.Object
groovy.util.ObservableList
- All Implemented Interfaces:
Iterable
,Collection
,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:
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
Modifier and TypeClassDescriptionstatic enum
static class
static class
static class
static class
static class
static class
static class
protected class
protected class
-
Field Summary
-
Constructor Summary
ConstructorDescriptionObservableList
(Closure test) ObservableList
(List delegate) ObservableList
(List delegate, Closure test) -
Method Summary
Modifier and TypeMethodDescriptionvoid
boolean
boolean
addAll
(int index, Collection c) boolean
addAll
(Collection c) void
void
addPropertyChangeListener
(String propertyName, PropertyChangeListener listener) void
clear()
boolean
boolean
boolean
protected void
fireElementAddedEvent
(int index, Object element) protected void
fireElementClearedEvent
(List values) protected void
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) get
(int index) protected List
getPropertyChangeListeners
(String propertyName) int
getSize()
protected Closure
getTest()
int
hashCode()
boolean
hasListeners
(String propertyName) int
boolean
isEmpty()
iterator()
int
listIterator
(int index) remove
(int index) boolean
boolean
void
void
removePropertyChangeListener
(String propertyName, PropertyChangeListener listener) boolean
int
size()
subList
(int fromIndex, int toIndex) Object[]
toArray()
Object[]
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface java.util.List
replaceAll, sort, spliterator
-
Field Details
-
SIZE_PROPERTY
- See Also:
-
CONTENT_PROPERTY
- See Also:
-
-
Constructor Details
-
ObservableList
public ObservableList() -
ObservableList
-
ObservableList
-
ObservableList
-
-
Method Details
-
getContent
-
getDelegateList
-
getTest
-
fireElementAddedEvent
-
fireMultiElementAddedEvent
-
fireElementClearedEvent
-
fireElementRemovedEvent
-
fireMultiElementRemovedEvent
-
fireElementUpdatedEvent
-
fireElementEvent
-
fireSizeChangedEvent
protected void fireSizeChangedEvent(int oldValue, int newValue) -
add
-
add
- Specified by:
add
in interfaceCollection
- Specified by:
add
in interfaceList
-
addAll
- Specified by:
addAll
in interfaceCollection
- Specified by:
addAll
in interfaceList
-
addAll
-
clear
public void clear()- Specified by:
clear
in interfaceCollection
- Specified by:
clear
in interfaceList
-
contains
- Specified by:
contains
in interfaceCollection
- Specified by:
contains
in interfaceList
-
containsAll
- Specified by:
containsAll
in interfaceCollection
- Specified by:
containsAll
in interfaceList
-
equals
-
get
-
hashCode
public int hashCode() -
indexOf
-
isEmpty
public boolean isEmpty()- Specified by:
isEmpty
in interfaceCollection
- Specified by:
isEmpty
in interfaceList
-
iterator
-
lastIndexOf
- Specified by:
lastIndexOf
in interfaceList
-
listIterator
- Specified by:
listIterator
in interfaceList
-
listIterator
- Specified by:
listIterator
in interfaceList
-
remove
-
remove
- Specified by:
remove
in interfaceCollection
- Specified by:
remove
in interfaceList
-
removeAll
- Specified by:
removeAll
in interfaceCollection
- Specified by:
removeAll
in interfaceList
-
retainAll
- Specified by:
retainAll
in interfaceCollection
- Specified by:
retainAll
in interfaceList
-
set
-
size
public int size()- Specified by:
size
in interfaceCollection
- Specified by:
size
in interfaceList
-
getSize
public int getSize() -
subList
-
toArray
- Specified by:
toArray
in interfaceCollection
- Specified by:
toArray
in interfaceList
-
toArray
- Specified by:
toArray
in interfaceCollection
- Specified by:
toArray
in interfaceList
-
addPropertyChangeListener
-
addPropertyChangeListener
-
getPropertyChangeListeners
-
getPropertyChangeListeners
-
removePropertyChangeListener
-
removePropertyChangeListener
-
hasListeners
-