Class ReadOnlyListWrapperEx<E>

  • Type Parameters:
    E - The element type of the wrapped ObservableList.
    All Implemented Interfaces:
    java.lang.Iterable<E>, java.util.Collection<E>, java.util.List<E>, javafx.beans.Observable, javafx.beans.property.Property<javafx.collections.ObservableList<E>>, javafx.beans.property.ReadOnlyProperty<javafx.collections.ObservableList<E>>, javafx.beans.value.ObservableListValue<E>, javafx.beans.value.ObservableObjectValue<javafx.collections.ObservableList<E>>, javafx.beans.value.ObservableValue<javafx.collections.ObservableList<E>>, javafx.beans.value.WritableListValue<E>, javafx.beans.value.WritableObjectValue<javafx.collections.ObservableList<E>>, javafx.beans.value.WritableValue<javafx.collections.ObservableList<E>>, javafx.collections.ObservableList<E>

    public class ReadOnlyListWrapperEx<E>
    extends javafx.beans.property.ReadOnlyListWrapper<E>
    A replacement for ReadOnlyListWrapper to fix the following JavaFX issues:
    • Change notifications are fired even when the observed value did not change.(https://bugs.openjdk.java.net/browse/JDK-8089169)
    • Bidirectional binding not working (https://bugs.openjdk.java.net/browse/JDK-8089557): fixed by not forwarding listeners to the nested read-only property but rather keeping the lists of listeners distinct.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addListener​(javafx.beans.InvalidationListener listener)  
      void addListener​(javafx.beans.value.ChangeListener<? super javafx.collections.ObservableList<E>> listener)  
      void addListener​(javafx.collections.ListChangeListener<? super E> listener)  
      protected void fireValueChangedEvent()  
      protected void fireValueChangedEvent​(javafx.collections.ListChangeListener.Change<? extends E> change)  
      javafx.beans.property.ReadOnlyListProperty<E> getReadOnlyProperty()  
      int hashCode()  
      void removeListener​(javafx.beans.InvalidationListener listener)  
      void removeListener​(javafx.beans.value.ChangeListener<? super javafx.collections.ObservableList<E>> listener)  
      void removeListener​(javafx.collections.ListChangeListener<? super E> listener)  
      • Methods inherited from class javafx.beans.property.SimpleListProperty

        getBean, getName
      • Methods inherited from class javafx.beans.property.ListPropertyBase

        bind, emptyProperty, get, invalidated, isBound, set, sizeProperty, toString, unbind
      • Methods inherited from class javafx.beans.property.ListProperty

        bindBidirectional, setValue, unbindBidirectional
      • Methods inherited from class javafx.beans.property.ReadOnlyListProperty

        bindContent, bindContentBidirectional, equals, unbindContent, unbindContentBidirectional
      • Methods inherited from class javafx.beans.binding.ListExpression

        add, add, addAll, addAll, addAll, asString, clear, contains, containsAll, get, getSize, getValue, indexOf, isEmpty, isEqualTo, isNotEqualTo, isNotNull, isNull, iterator, lastIndexOf, listExpression, listIterator, listIterator, remove, remove, remove, removeAll, removeAll, retainAll, retainAll, set, setAll, setAll, size, subList, toArray, toArray, valueAt, valueAt
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Collection

        parallelStream, removeIf, stream, toArray
      • Methods inherited from interface java.lang.Iterable

        forEach
      • Methods inherited from interface java.util.List

        add, add, addAll, addAll, clear, contains, containsAll, equals, get, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray
      • Methods inherited from interface javafx.collections.ObservableList

        addAll, filtered, remove, removeAll, retainAll, setAll, setAll, sorted, sorted
      • Methods inherited from interface javafx.beans.value.ObservableValue

        getValue
      • Methods inherited from interface javafx.beans.value.WritableValue

        getValue
    • Constructor Detail

      • ReadOnlyListWrapperEx

        public ReadOnlyListWrapperEx​(java.lang.Object bean,
                                     java.lang.String name)
        Creates a new named ReadOnlyListWrapperEx related to the given bean.
        Parameters:
        bean - The bean to relate the to be created ReadOnlyListWrapperEx to.
        name - The name for the to be created ReadOnlyListWrapperEx.
      • ReadOnlyListWrapperEx

        public ReadOnlyListWrapperEx​(java.lang.Object bean,
                                     java.lang.String name,
                                     javafx.collections.ObservableList<E> initialValue)
        Creates a new named ReadOnlyListWrapperEx, related to the given bean and provided with the initial value.
        Parameters:
        bean - The bean to relate the to be created ReadOnlyListWrapperEx to.
        name - The name for the to be created ReadOnlyListWrapperEx.
        initialValue - The initial value of the to be created ReadOnlyListWrapperEx.
      • ReadOnlyListWrapperEx

        public ReadOnlyListWrapperEx​(javafx.collections.ObservableList<E> initialValue)
        Creates a new unnamed ReadOnlyListWrapperEx with the given initial value.
        Parameters:
        initialValue - The initial value of the to be created ReadOnlyListWrapperEx.
    • Method Detail

      • addListener

        public void addListener​(javafx.beans.value.ChangeListener<? super javafx.collections.ObservableList<E>> listener)
        Specified by:
        addListener in interface javafx.beans.value.ObservableValue<E>
        Overrides:
        addListener in class javafx.beans.property.ListPropertyBase<E>
      • addListener

        public void addListener​(javafx.beans.InvalidationListener listener)
        Specified by:
        addListener in interface javafx.beans.Observable
        Overrides:
        addListener in class javafx.beans.property.ListPropertyBase<E>
      • addListener

        public void addListener​(javafx.collections.ListChangeListener<? super E> listener)
        Specified by:
        addListener in interface javafx.collections.ObservableList<E>
        Overrides:
        addListener in class javafx.beans.property.ListPropertyBase<E>
      • fireValueChangedEvent

        protected void fireValueChangedEvent()
        Overrides:
        fireValueChangedEvent in class javafx.beans.property.ReadOnlyListWrapper<E>
      • fireValueChangedEvent

        protected void fireValueChangedEvent​(javafx.collections.ListChangeListener.Change<? extends E> change)
        Overrides:
        fireValueChangedEvent in class javafx.beans.property.ReadOnlyListWrapper<E>
      • getReadOnlyProperty

        public javafx.beans.property.ReadOnlyListProperty<E> getReadOnlyProperty()
        Overrides:
        getReadOnlyProperty in class javafx.beans.property.ReadOnlyListWrapper<E>
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface java.util.Collection<E>
        Specified by:
        hashCode in interface java.util.List<E>
        Overrides:
        hashCode in class javafx.beans.property.ReadOnlyListProperty<E>
      • removeListener

        public void removeListener​(javafx.beans.value.ChangeListener<? super javafx.collections.ObservableList<E>> listener)
        Specified by:
        removeListener in interface javafx.beans.value.ObservableValue<E>
        Overrides:
        removeListener in class javafx.beans.property.ListPropertyBase<E>
      • removeListener

        public void removeListener​(javafx.beans.InvalidationListener listener)
        Specified by:
        removeListener in interface javafx.beans.Observable
        Overrides:
        removeListener in class javafx.beans.property.ListPropertyBase<E>
      • removeListener

        public void removeListener​(javafx.collections.ListChangeListener<? super E> listener)
        Specified by:
        removeListener in interface javafx.collections.ObservableList<E>
        Overrides:
        removeListener in class javafx.beans.property.ListPropertyBase<E>