Package groovy.util
Class ObservableList
java.lang.Object
groovy.util.ObservableList
- All Implemented Interfaces:
Iterable
,Collection
,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:
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 String
CONTENT_PROPERTY
static String
SIZE_PROPERTY
-
Constructor Summary
Constructors Constructor Description ObservableList()
ObservableList(Closure test)
ObservableList(List delegate)
ObservableList(List delegate, Closure test)
-
Method Summary
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:
- Constant Field Values
-
CONTENT_PROPERTY
- See Also:
- Constant Field Values
-
-
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
-