Class ReadOnlyMapWrapperEx<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>, Observable, Property<ObservableMap<K,V>>, ReadOnlyProperty<ObservableMap<K,V>>, ObservableMapValue<K,V>, ObservableObjectValue<ObservableMap<K,V>>, ObservableValue<ObservableMap<K,V>>, WritableMapValue<K,V>, WritableObjectValue<ObservableMap<K,V>>, WritableValue<ObservableMap<K,V>>, ObservableMap<K,V>

public class ReadOnlyMapWrapperEx<K,V> extends ReadOnlyMapWrapper<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)
  • 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.