Class ReadOnlyMapPropertyBaseEx<K,V>

java.lang.Object
javafx.beans.binding.MapExpression<K,V>
javafx.beans.property.ReadOnlyMapProperty<K,V>
javafx.beans.property.ReadOnlyMapPropertyBase<K,V>
org.eclipse.gef.common.beans.property.ReadOnlyMapPropertyBaseEx<K,V>
Type Parameters:
K - The key type of the wrapped ObservableMap.
V - The value type of the wrapped ObservableMap.
All Implemented Interfaces:
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)
  • Property Summary

    Properties inherited from class javafx.beans.binding.MapExpression

    empty, size
  • Nested Class Summary

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

    Map.Entry<K extends Object,V extends Object>
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    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
     
    protected void
    fireValueChangedEvent(javafx.collections.MapChangeListener.Change<? extends K,? extends V> change)
     
    int
     
    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 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 Details

    • ReadOnlyMapPropertyBaseEx

      public ReadOnlyMapPropertyBaseEx()
  • Method Details

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