Module javafx.base

Class ObservableValueBase<T>

java.lang.Object
javafx.beans.value.ObservableValueBase<T>
All Implemented Interfaces:
Observable, ObservableValue<T>

public abstract class ObservableValueBase<T>
extends Object
implements ObservableValue<T>
A convenience class for creating implementations of ObservableValue. It contains all of the infrastructure support for value invalidation- and change event notification. This implementation can handle adding and removing listeners while the observers are being notified, but it is not thread-safe.
Since:
JavaFX 2.0
  • Constructor Details

    • ObservableValueBase

      public ObservableValueBase()
      Creates a default ObservableValueBase.
  • Method Details

    • addListener

      public void addListener​(InvalidationListener listener)
      Adds an InvalidationListener which will be notified whenever the Observable becomes invalid. If the same listener is added more than once, then it will be notified more than once. That is, no check is made to ensure uniqueness.

      Note that the same actual InvalidationListener instance may be safely registered for different Observables.

      The Observable stores a strong reference to the listener which will prevent the listener from being garbage collected and may result in a memory leak. It is recommended to either unregister a listener by calling removeListener after use or to use an instance of WeakInvalidationListener avoid this situation.

      Specified by:
      addListener in interface Observable
      Parameters:
      listener - The listener to register
      See Also:
      Observable.removeListener(InvalidationListener)
    • addListener

      public void addListener​(ChangeListener<? super T> listener)
      Adds a ChangeListener which will be notified whenever the value of the ObservableValue changes. If the same listener is added more than once, then it will be notified more than once. That is, no check is made to ensure uniqueness.

      Note that the same actual ChangeListener instance may be safely registered for different ObservableValues.

      The ObservableValue stores a strong reference to the listener which will prevent the listener from being garbage collected and may result in a memory leak. It is recommended to either unregister a listener by calling removeListener after use or to use an instance of WeakChangeListener avoid this situation.

      Specified by:
      addListener in interface ObservableValue<T>
      Parameters:
      listener - The listener to register
      See Also:
      ObservableValue.removeListener(ChangeListener)
    • removeListener

      public void removeListener​(InvalidationListener listener)
      Removes the given listener from the list of listeners, that are notified whenever the value of the Observable becomes invalid.

      If the given listener has not been previously registered (i.e. it was never added) then this method call is a no-op. If it had been previously added then it will be removed. If it had been added more than once, then only the first occurrence will be removed.

      Specified by:
      removeListener in interface Observable
      Parameters:
      listener - The listener to remove
      See Also:
      Observable.addListener(InvalidationListener)
    • removeListener

      public void removeListener​(ChangeListener<? super T> listener)
      Removes the given listener from the list of listeners that are notified whenever the value of the ObservableValue changes.

      If the given listener has not been previously registered (i.e. it was never added) then this method call is a no-op. If it had been previously added then it will be removed. If it had been added more than once, then only the first occurrence will be removed.

      Specified by:
      removeListener in interface ObservableValue<T>
      Parameters:
      listener - The listener to remove
      See Also:
      ObservableValue.addListener(ChangeListener)
    • fireValueChangedEvent

      protected void fireValueChangedEvent()
      Notify the currently registered observers of a value change. This implementation will ignore all adds and removes of observers that are done while a notification is processed. The changes take effect in the following call to fireValueChangedEvent.