Package groovy.util

Class 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.
    • 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

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