Package groovy.util

Class ObservableList

java.lang.Object
groovy.util.ObservableList
All Implemented Interfaces:
java.lang.Iterable, java.util.Collection, java.util.List

public class ObservableList
extends java.lang.Object
implements java.util.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.
  • Field Details

  • Constructor Details

    • 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 Details

    • getContent

      public java.util.List getContent()
    • getDelegateList

      protected java.util.List getDelegateList()
    • getTest

      protected Closure getTest()
    • fireElementAddedEvent

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

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

      protected void fireElementClearedEvent​(java.util.List values)
    • fireElementRemovedEvent

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

      protected void fireMultiElementRemovedEvent​(java.util.List values)
    • fireElementUpdatedEvent

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

      protected void fireElementEvent​(ObservableList.ElementEvent event)
    • fireSizeChangedEvent

      protected void fireSizeChangedEvent​(int oldValue, int newValue)
    • add

      public void add​(int index, java.lang.Object element)
      Specified by:
      add in interface java.util.List
    • add

      public boolean add​(java.lang.Object o)
      Specified by:
      add in interface java.util.Collection
      Specified by:
      add in interface java.util.List
    • addAll

      public boolean addAll​(java.util.Collection c)
      Specified by:
      addAll in interface java.util.Collection
      Specified by:
      addAll in interface java.util.List
    • addAll

      public boolean addAll​(int index, java.util.Collection c)
      Specified by:
      addAll in interface java.util.List
    • clear

      public void clear()
      Specified by:
      clear in interface java.util.Collection
      Specified by:
      clear in interface java.util.List
    • contains

      public boolean contains​(java.lang.Object o)
      Specified by:
      contains in interface java.util.Collection
      Specified by:
      contains in interface java.util.List
    • containsAll

      public boolean containsAll​(java.util.Collection c)
      Specified by:
      containsAll in interface java.util.Collection
      Specified by:
      containsAll in interface java.util.List
    • equals

      public boolean equals​(java.lang.Object o)
      Specified by:
      equals in interface java.util.Collection
      Specified by:
      equals in interface java.util.List
      Overrides:
      equals in class java.lang.Object
    • get

      public java.lang.Object get​(int index)
      Specified by:
      get in interface java.util.List
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface java.util.Collection
      Specified by:
      hashCode in interface java.util.List
      Overrides:
      hashCode in class java.lang.Object
    • indexOf

      public int indexOf​(java.lang.Object o)
      Specified by:
      indexOf in interface java.util.List
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface java.util.Collection
      Specified by:
      isEmpty in interface java.util.List
    • iterator

      public java.util.Iterator iterator()
      Specified by:
      iterator in interface java.util.Collection
      Specified by:
      iterator in interface java.lang.Iterable
      Specified by:
      iterator in interface java.util.List
    • lastIndexOf

      public int lastIndexOf​(java.lang.Object o)
      Specified by:
      lastIndexOf in interface java.util.List
    • listIterator

      public java.util.ListIterator listIterator()
      Specified by:
      listIterator in interface java.util.List
    • listIterator

      public java.util.ListIterator listIterator​(int index)
      Specified by:
      listIterator in interface java.util.List
    • remove

      public java.lang.Object remove​(int index)
      Specified by:
      remove in interface java.util.List
    • remove

      public boolean remove​(java.lang.Object o)
      Specified by:
      remove in interface java.util.Collection
      Specified by:
      remove in interface java.util.List
    • removeAll

      public boolean removeAll​(java.util.Collection c)
      Specified by:
      removeAll in interface java.util.Collection
      Specified by:
      removeAll in interface java.util.List
    • retainAll

      public boolean retainAll​(java.util.Collection c)
      Specified by:
      retainAll in interface java.util.Collection
      Specified by:
      retainAll in interface java.util.List
    • set

      public java.lang.Object set​(int index, java.lang.Object element)
      Specified by:
      set in interface java.util.List
    • size

      public int size()
      Specified by:
      size in interface java.util.Collection
      Specified by:
      size in interface java.util.List
    • getSize

      public int getSize()
    • subList

      public java.util.List subList​(int fromIndex, int toIndex)
      Specified by:
      subList in interface java.util.List
    • toArray

      public java.lang.Object[] toArray()
      Specified by:
      toArray in interface java.util.Collection
      Specified by:
      toArray in interface java.util.List
    • toArray

      public java.lang.Object[] toArray​(java.lang.Object[] a)
      Specified by:
      toArray in interface java.util.Collection
      Specified by:
      toArray in interface java.util.List
    • addPropertyChangeListener

      public void addPropertyChangeListener​(java.beans.PropertyChangeListener listener)
    • addPropertyChangeListener

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

      public java.beans.PropertyChangeListener[] getPropertyChangeListeners()
    • getPropertyChangeListeners

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

      public void removePropertyChangeListener​(java.beans.PropertyChangeListener listener)
    • removePropertyChangeListener

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

      public boolean hasListeners​(java.lang.String propertyName)