Class ReadOnlyMapPropertyBaseEx<K,​V>

  • Type Parameters:
    K - The key type of the wrapped ObservableMap.
    V - The value type of the wrapped ObservableMap.
    All Implemented Interfaces:
    java.util.Map<K,​V>, javafx.beans.Observable, javafx.beans.property.ReadOnlyProperty<javafx.collections.ObservableMap<K,​V>>, javafx.beans.value.ObservableMapValue<K,​V>, javafx.beans.value.ObservableObjectValue<javafx.collections.ObservableMap<K,​V>>, javafx.beans.value.ObservableValue<javafx.collections.ObservableMap<K,​V>>, javafx.collections.ObservableMap<K,​V>

    public abstract class ReadOnlyMapPropertyBaseEx<K,​V>
    extends javafx.beans.property.ReadOnlyMapPropertyBase<K,​V>
    A replacement for ReadOnlyMapWrapper to fix the following JavaFX issues:
    • All listeners were removed when removing one (https://bugs.openjdk.java.net/browse/JDK-8136465): fixed by keeping track of all listeners and ensuring that remaining listeners are re-added when a listener is removed.
    • Change notifications are fired even when the observed value did not change.(https://bugs.openjdk.java.net/browse/JDK-8089169)
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface java.util.Map

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
    • 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.ObservableMap<K,​V>> listener)
      void addListener​(javafx.collections.MapChangeListener<? super K,​? super V> listener)
      protected void fireValueChangedEvent()  
      protected void fireValueChangedEvent​(javafx.collections.MapChangeListener.Change<? extends K,​? extends V> change)  
      int hashCode()  
      void removeListener​(javafx.beans.InvalidationListener listener)
      void removeListener​(javafx.beans.value.ChangeListener<? super javafx.collections.ObservableMap<K,​V>> listener)
      void removeListener​(javafx.collections.MapChangeListener<? super K,​? super V> listener)
      • Methods inherited from class javafx.beans.property.ReadOnlyMapProperty

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

        asString, clear, containsKey, containsValue, emptyProperty, entrySet, get, getSize, getValue, isEmpty, isEqualTo, isNotEqualTo, isNotNull, isNull, keySet, mapExpression, put, putAll, remove, size, sizeProperty, valueAt, valueAt, values
      • Methods inherited from class java.lang.Object

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

        compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
      • Methods inherited from interface javafx.beans.value.ObservableObjectValue

        get
      • Methods inherited from interface javafx.beans.value.ObservableValue

        getValue
      • Methods inherited from interface javafx.beans.property.ReadOnlyProperty

        getBean, getName
    • Constructor Detail

      • ReadOnlyMapPropertyBaseEx

        public ReadOnlyMapPropertyBaseEx()
    • Method Detail

      • addListener

        public void addListener​(javafx.beans.value.ChangeListener<? super javafx.collections.ObservableMap<K,​V>> listener)
        Specified by:
        addListener in interface javafx.beans.value.ObservableValue<K>
        Overrides:
        addListener in class javafx.beans.property.ReadOnlyMapPropertyBase<K,​V>
      • addListener

        public void addListener​(javafx.beans.InvalidationListener listener)
        Specified by:
        addListener in interface javafx.beans.Observable
        Overrides:
        addListener in class javafx.beans.property.ReadOnlyMapPropertyBase<K,​V>
      • addListener

        public void addListener​(javafx.collections.MapChangeListener<? super K,​? super V> listener)
        Specified by:
        addListener in interface javafx.collections.ObservableMap<K,​V>
        Overrides:
        addListener in class javafx.beans.property.ReadOnlyMapPropertyBase<K,​V>
      • fireValueChangedEvent

        protected void fireValueChangedEvent()
        Overrides:
        fireValueChangedEvent in class javafx.beans.property.ReadOnlyMapPropertyBase<K,​V>
      • fireValueChangedEvent

        protected void fireValueChangedEvent​(javafx.collections.MapChangeListener.Change<? extends K,​? extends V> change)
        Overrides:
        fireValueChangedEvent in class javafx.beans.property.ReadOnlyMapPropertyBase<K,​V>
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface java.util.Map<K,​V>
        Overrides:
        hashCode in class javafx.beans.property.ReadOnlyMapProperty<K,​V>
      • removeListener

        public void removeListener​(javafx.beans.value.ChangeListener<? super javafx.collections.ObservableMap<K,​V>> listener)
        Specified by:
        removeListener in interface javafx.beans.value.ObservableValue<K>
        Overrides:
        removeListener in class javafx.beans.property.ReadOnlyMapPropertyBase<K,​V>
      • removeListener

        public void removeListener​(javafx.beans.InvalidationListener listener)
        Specified by:
        removeListener in interface javafx.beans.Observable
        Overrides:
        removeListener in class javafx.beans.property.ReadOnlyMapPropertyBase<K,​V>
      • removeListener

        public void removeListener​(javafx.collections.MapChangeListener<? super K,​? super V> listener)
        Specified by:
        removeListener in interface javafx.collections.ObservableMap<K,​V>
        Overrides:
        removeListener in class javafx.beans.property.ReadOnlyMapPropertyBase<K,​V>