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
Bound properties
| Modifiers | Name | Description |
|---|---|---|
enum |
ObservableList.ChangeType |
Enumerates the specialized list change events. |
static class |
ObservableList.ElementAddedEvent |
Event fired when one element is added. |
static class |
ObservableList.ElementClearedEvent |
Event fired when the list is cleared. |
static class |
ObservableList.ElementEvent |
Base event type for observable list content changes. |
static class |
ObservableList.ElementRemovedEvent |
Event fired when one element is removed. |
static class |
ObservableList.ElementUpdatedEvent |
Event fired when one element is updated. |
static class |
ObservableList.MultiElementAddedEvent |
Event fired when multiple elements are added. |
static class |
ObservableList.MultiElementRemovedEvent |
Event fired when multiple elements are removed. |
protected class |
ObservableList.ObservableIterator |
Iterator wrapper that reports removals as observable list events. |
protected class |
ObservableList.ObservableListIterator |
List iterator wrapper that routes mutations through ObservableList. |
| Modifiers | Name | Description |
|---|---|---|
static String |
CONTENT_PROPERTY |
Bound property name for list content changes. |
static String |
SIZE_PROPERTY |
Bound property name for list size changes. |
| Constructor and description |
|---|
ObservableList()Creates an observable list backed by an ArrayList. |
ObservableList(List delegate)Creates an observable list backed by the supplied delegate. |
ObservableList(Closure test)Creates an observable list backed by an ArrayList. |
ObservableList(List delegate, Closure test)Creates an observable list backed by the supplied delegate. |
| Type Params | Return Type | Name and description |
|---|---|---|
|
public void |
add(int index, Object element){@inheritDoc} |
|
public boolean |
add(Object o){@inheritDoc} |
|
public boolean |
addAll(Collection c){@inheritDoc} |
|
public boolean |
addAll(int index, Collection c){@inheritDoc} |
|
public void |
addPropertyChangeListener(PropertyChangeListener listener)Registers a listener for all observable list events. |
|
public void |
addPropertyChangeListener(String propertyName, PropertyChangeListener listener)Registers a listener for a named bound property. |
|
public void |
clear(){@inheritDoc} |
|
public boolean |
contains(Object o){@inheritDoc} |
|
public boolean |
containsAll(Collection c){@inheritDoc} |
|
public boolean |
equals(Object o){@inheritDoc} |
|
protected void |
fireElementAddedEvent(int index, Object element)Fires a single-element added event. |
|
protected void |
fireElementClearedEvent(List values)Fires a cleared event containing removed values. |
|
protected void |
fireElementEvent(ObservableList.ElementEvent event)Publishes an element event to registered listeners. |
|
protected void |
fireElementRemovedEvent(int index, Object element)Fires a single-element removed event. |
|
protected void |
fireElementUpdatedEvent(int index, Object oldValue, Object newValue)Fires a single-element updated event. |
|
protected void |
fireMultiElementAddedEvent(int index, List values)Fires a multi-element added event. |
|
protected void |
fireMultiElementRemovedEvent(List values)Fires a multi-element removed event. |
|
protected void |
fireSizeChangedEvent(int oldValue, int newValue)Fires the bound size change event. |
|
public Object |
get(int index){@inheritDoc} |
|
public List |
getContent()Returns an unmodifiable snapshot view of the backing list. |
|
protected List |
getDelegateList()Returns the mutable backing list. |
|
public PropertyChangeListener[] |
getPropertyChangeListeners()Returns listeners registered for all properties. |
|
public PropertyChangeListener[] |
getPropertyChangeListeners(String propertyName)Returns listeners registered for a named property. |
|
public int |
getSize()Returns the current list size as a bound property value. |
|
protected Closure |
getTest()Returns the optional event filter closure. |
|
public boolean |
hasListeners(String propertyName)Reports whether listeners are registered for a named property. |
|
public int |
hashCode(){@inheritDoc} |
|
public int |
indexOf(Object o){@inheritDoc} |
|
public boolean |
isEmpty(){@inheritDoc} |
|
public Iterator |
iterator(){@inheritDoc} |
|
public int |
lastIndexOf(Object o){@inheritDoc} |
|
public ListIterator |
listIterator(){@inheritDoc} |
|
public ListIterator |
listIterator(int index){@inheritDoc} |
|
public Object |
remove(int index){@inheritDoc} |
|
public boolean |
remove(Object o){@inheritDoc} |
|
public boolean |
removeAll(Collection c){@inheritDoc} |
|
public void |
removePropertyChangeListener(PropertyChangeListener listener)Removes a listener registered for all properties. |
|
public void |
removePropertyChangeListener(String propertyName, PropertyChangeListener listener)Removes a listener registered for a named property. |
|
public boolean |
retainAll(Collection c){@inheritDoc} |
|
public Object |
set(int index, Object element){@inheritDoc} |
|
public int |
size(){@inheritDoc} |
|
public List |
subList(int fromIndex, int toIndex){@inheritDoc} |
|
public Object[] |
toArray(){@inheritDoc} |
|
public Object[] |
toArray(Object[] a){@inheritDoc} |
Bound property name for list content changes.
Bound property name for list size changes.
Creates an observable list backed by an ArrayList.
Creates an observable list backed by the supplied delegate.
delegate - the backing listCreates an observable list backed by an ArrayList.
test - optional event filter{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
Registers a listener for all observable list events.
listener - the listener to addRegisters a listener for a named bound property.
propertyName - the property to observelistener - the listener to add{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
Fires a single-element added event.
Fires a cleared event containing removed values.
Publishes an element event to registered listeners.
Fires a single-element removed event.
Fires a single-element updated event.
Fires a multi-element added event.
Fires a multi-element removed event.
Fires the bound size change event.
{@inheritDoc}
Returns an unmodifiable snapshot view of the backing list.
Returns the mutable backing list.
Returns listeners registered for all properties.
Returns listeners registered for a named property.
propertyName - the observed property nameReturns the current list size as a bound property value.
Returns the optional event filter closure.
nullReports whether listeners are registered for a named property.
propertyName - the property name to inspecttrue if listeners are registered{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
Removes a listener registered for all properties.
listener - the listener to removeRemoves a listener registered for a named property.
propertyName - the observed property namelistener - the listener to remove{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
{@inheritDoc}
Copyright © 2003-2026 The Apache Software Foundation. All rights reserved.