Class SimpleMapPropertyEx<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.Property<javafx.collections.ObservableMap<K,​V>>, 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.beans.value.WritableMapValue<K,​V>, javafx.beans.value.WritableObjectValue<javafx.collections.ObservableMap<K,​V>>, javafx.beans.value.WritableValue<javafx.collections.ObservableMap<K,​V>>, javafx.collections.ObservableMap<K,​V>

    public class SimpleMapPropertyEx<K,​V>
    extends javafx.beans.property.SimpleMapProperty<K,​V>
    A replacement for SimpleMapProperty 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)
    • 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.
    • 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.SimpleMapProperty

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

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

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

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

        asString, clear, containsKey, containsValue, entrySet, get, getSize, getValue, isEmpty, isEqualTo, isNotEqualTo, isNotNull, isNull, keySet, mapExpression, put, putAll, remove, size, 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

        clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
      • Methods inherited from interface javafx.beans.value.ObservableValue

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

        getValue
    • Constructor Detail

      • SimpleMapPropertyEx

        public SimpleMapPropertyEx​(java.lang.Object bean,
                                   java.lang.String name)
        Constructs a new SimpleMapPropertyEx for the given bean and with the given name.
        Parameters:
        bean - The bean this property is related to.
        name - The name of the property.
      • SimpleMapPropertyEx

        public SimpleMapPropertyEx​(java.lang.Object bean,
                                   java.lang.String name,
                                   javafx.collections.ObservableMap<K,​V> initialValue)
        Constructs a new SimpleMapPropertyEx for the given bean and with the given name and initial value.
        Parameters:
        bean - The bean this property is related to.
        name - The name of the property.
        initialValue - The initial value of the property
      • SimpleMapPropertyEx

        public SimpleMapPropertyEx​(javafx.collections.ObservableMap<K,​V> initialValue)
        Constructs a new unnamed SimpleMapPropertyEx that is not related to a bean, with the given initial value.
        Parameters:
        initialValue - The initial value of the property
    • 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.MapPropertyBase<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.MapPropertyBase<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.MapPropertyBase<K,​V>
      • fireValueChangedEvent

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

        protected void fireValueChangedEvent​(javafx.collections.MapChangeListener.Change<? extends K,​? extends V> change)
        Overrides:
        fireValueChangedEvent in class javafx.beans.property.MapPropertyBase<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.MapPropertyBase<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.MapPropertyBase<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.MapPropertyBase<K,​V>