Groovy Documentation

## groovy.util
[Java] Class ObservableList

    java.lang.Object
      groovy.util.ObservableList

All Implemented Interfaces:
  java.util.List

    public class ObservableList
    extends java.lang.Object

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)} )
     <p/>
     // 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.

Authors:
  Andres Almiray

Nested Class Summary
`enum` | `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
`static java.lang.String` | `CONTENT_PROPERTY`
`static java.lang.String` | `SIZE_PROPERTY`

Constructor Summary
`ObservableList()`
`ObservableList(java.util.List delegate)`
`ObservableList(Closure test)`
`ObservableList(java.util.List delegate, Closure test)`

Method Summary
`void` | `add(int index, java.lang.Object element)`
`boolean` | `add(java.lang.Object o)`
`boolean` | `addAll(java.util.Collection c)`
`boolean` | `addAll(int index, java.util.Collection c)`
`void` | `addPropertyChangeListener(java.beans.PropertyChangeListener listener)`
`void` | `addPropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)`
`void` | `clear()`
`boolean` | `contains(java.lang.Object o)`
`boolean` | `containsAll(java.util.Collection c)`
`boolean` | `equals(java.lang.Object o)`
`protected void` | `fireElementAddedEvent(int index, java.lang.Object element)`
`protected void` | `fireElementClearedEvent(java.util.List values)`
`protected void` | `fireElementEvent(ObservableList.ElementEvent event)`
`protected void` | `fireElementRemovedEvent(int index, java.lang.Object element)`
`protected void` | `fireElementUpdatedEvent(int index, java.lang.Object oldValue, java.lang.Object newValue)`
`protected void` | `fireMultiElementAddedEvent(int index, java.util.List values)`
`protected void` | `fireMultiElementRemovedEvent(java.util.List values)`
`protected void` | `fireSizeChangedEvent(int oldValue, int newValue)`
`java.lang.Object` | `get(int index)`
`java.util.List` | `getContent()`
`protected java.util.List` | `getDelegateList()`
`java.beans.PropertyChangeListener[]` | `getPropertyChangeListeners()`
`java.beans.PropertyChangeListener[]` | `getPropertyChangeListeners(java.lang.String propertyName)`
`int` | `getSize()`
`protected Closure` | `getTest()`
`boolean` | `hasListeners(java.lang.String propertyName)`
`int` | `hashCode()`
`int` | `indexOf(java.lang.Object o)`
`boolean` | `isEmpty()`
`java.util.Iterator` | `iterator()`
`int` | `lastIndexOf(java.lang.Object o)`
`java.util.ListIterator` | `listIterator()`
`java.util.ListIterator` | `listIterator(int index)`
`java.lang.Object` | `remove(int index)`
`boolean` | `remove(java.lang.Object o)`
`boolean` | `removeAll(java.util.Collection c)`
`void` | `removePropertyChangeListener(java.beans.PropertyChangeListener listener)`
`void` | `removePropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)`
`boolean` | `retainAll(java.util.Collection c)`
`java.lang.Object` | `set(int index, java.lang.Object element)`
`int` | `size()`
`java.util.List` | `subList(int fromIndex, int toIndex)`
`java.lang.Object[]` | `toArray()`
`java.lang.Object[]` | `toArray(java.lang.Object[] a)`

Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()

Field Detail

### CONTENT_PROPERTY

    public static final java.lang.String CONTENT_PROPERTY

### SIZE_PROPERTY

    public static final java.lang.String SIZE_PROPERTY

Constructor Detail

### ObservableList

    public ObservableList()

### ObservableList

    public ObservableList(java.util.List delegate)

### ObservableList

    public ObservableList(Closure test)

### ObservableList

    public ObservableList(java.util.List delegate, Closure test)

Method Detail

### add

    public void add(int index, java.lang.Object element)

### add

    public boolean add(java.lang.Object o)

### addAll

    public boolean addAll(java.util.Collection c)

### addAll

    public boolean addAll(int index, java.util.Collection c)

### addPropertyChangeListener

    public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)

### addPropertyChangeListener

    public void addPropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)

### clear

    public void clear()

### contains

    public boolean contains(java.lang.Object o)

### containsAll

    public boolean containsAll(java.util.Collection c)

### equals

    public boolean equals(java.lang.Object o)

### fireElementAddedEvent

    protected void fireElementAddedEvent(int index, java.lang.Object element)

### fireElementClearedEvent

    protected void fireElementClearedEvent(java.util.List values)

### fireElementEvent

    protected void fireElementEvent(ObservableList.ElementEvent event)

### fireElementRemovedEvent

    protected void fireElementRemovedEvent(int index, java.lang.Object element)

### fireElementUpdatedEvent

    protected void fireElementUpdatedEvent(int index, java.lang.Object oldValue, java.lang.Object newValue)

### fireMultiElementAddedEvent

    protected void fireMultiElementAddedEvent(int index, java.util.List values)

### fireMultiElementRemovedEvent

    protected void fireMultiElementRemovedEvent(java.util.List values)

### fireSizeChangedEvent

    protected void fireSizeChangedEvent(int oldValue, int newValue)

### get

    public java.lang.Object get(int index)

### getContent

    public java.util.List getContent()

### getDelegateList

    protected java.util.List getDelegateList()

### getPropertyChangeListeners

    public java.beans.PropertyChangeListener[] getPropertyChangeListeners()

### getPropertyChangeListeners

    public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String propertyName)

### getSize

    public int getSize()

### getTest

    protected Closure getTest()

### hasListeners

    public boolean hasListeners(java.lang.String propertyName)

### hashCode

    public int hashCode()

### indexOf

    public int indexOf(java.lang.Object o)

### isEmpty

    public boolean isEmpty()

### iterator

    public java.util.Iterator iterator()

### lastIndexOf

    public int lastIndexOf(java.lang.Object o)

### listIterator

    public java.util.ListIterator listIterator()

### listIterator

    public java.util.ListIterator listIterator(int index)

### remove

    public java.lang.Object remove(int index)

### remove

    public boolean remove(java.lang.Object o)

### removeAll

    public boolean removeAll(java.util.Collection c)

### removePropertyChangeListener

    public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)

### removePropertyChangeListener

    public void removePropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)

### retainAll

    public boolean retainAll(java.util.Collection c)

### set

    public java.lang.Object set(int index, java.lang.Object element)

### size

    public int size()

### subList

    public java.util.List subList(int fromIndex, int toIndex)

### toArray

    public java.lang.Object[] toArray()

### toArray

    public java.lang.Object[] toArray(java.lang.Object[] a)

Groovy Documentation