Class WidgetValueProperty<S extends Widget,T>

Type Parameters:
S - type of the source object
T - type of the value of the property
All Implemented Interfaces:
IProperty, IValueProperty<S,T>, IWidgetValueProperty<S,T>

public abstract class WidgetValueProperty<S extends Widget,T> extends SimpleValueProperty<S,T> implements IWidgetValueProperty<S,T>
Abstract value property implementation for Widget properties. This class implements some basic behavior that widget properties are generally expected to have, namely: This class also provides a default widget listener implementation using SWT's untyped listener API. Subclasses may pass one or more SWT event type constants to the super constructor to indicate which events signal a property change.
Since:
1.3
  • Constructor Details

    • WidgetValueProperty

      protected WidgetValueProperty()
      Constructs a WidgetValueProperty which does not listen for any SWT events.
    • WidgetValueProperty

      protected WidgetValueProperty(int changeEvent)
      Constructs a WidgetValueProperty with the specified SWT event type
      Parameters:
      changeEvent - SWT event type constant of the event that signifies a property change.
    • WidgetValueProperty

      protected WidgetValueProperty(int[] changeEvents)
      Constructs a WidgetValueProperty with the specified SWT event type(s).
      Parameters:
      changeEvents - array of SWT event type constants of the events that signify a property change.
    • WidgetValueProperty

      public WidgetValueProperty(int[] changeEvents, int[] staleEvents)
      Constructs a WidgetValueProperty with the specified SWT event types.
      Parameters:
      changeEvents - array of SWT event type constants of the events that signify a property change.
      staleEvents - array of SWT event type constants of the events that signify a property became stale.
  • Method Details

    • adaptListener

      public INativePropertyListener<S> adaptListener(ISimplePropertyListener<S,ValueDiff<? extends T>> listener)
      Description copied from class: SimpleValueProperty
      Returns a listener capable of adding or removing itself as a listener on a source object using the the source's "native" listener API. Events received from the source objects are parlayed to the specified listener argument.

      This method returns null if the source object has no listener APIs for this property.

      Specified by:
      adaptListener in class SimpleValueProperty<S extends Widget,T>
      Parameters:
      listener - the property listener to receive events
      Returns:
      a native listener which parlays property change events to the specified listener, or null if the source object has no listener APIs for this property.
    • observe

      public ISWTObservableValue<T> observe(Realm realm, S source)
      Description copied from interface: IValueProperty
      Returns an observable value observing this value property on the given property source
      Specified by:
      observe in interface IValueProperty<S extends Widget,T>
      Overrides:
      observe in class SimpleValueProperty<S extends Widget,T>
      Parameters:
      realm - the observable's realm
      source - the property source
      Returns:
      an observable value observing this value property on the given property source
      Since:
      1.9
    • wrapObservable

      protected ISWTObservableValue<T> wrapObservable(IObservableValue<T> observable, Widget widget)
    • observe

      public ISWTObservableValue<T> observe(S widget)
      Description copied from interface: IValueProperty
      Returns an observable value observing this value property on the given property source.
      Specified by:
      observe in interface IValueProperty<S extends Widget,T>
      Specified by:
      observe in interface IWidgetValueProperty<S extends Widget,T>
      Overrides:
      observe in class ValueProperty<S extends Widget,T>
      Parameters:
      widget - the property source
      Returns:
      an observable value observing this value property on the given property source
    • observeDelayed

      public ISWTObservableValue<T> observeDelayed(int delay, S widget)
      Description copied from interface: IWidgetValueProperty
      Returns an ISWTObservableValue observing this value property on the given widget, which delays notification of value changes until at least delay milliseconds have elapsed since that last change event, or until a FocusOut event is received from the widget (whichever happens first).

      This observable helps to boost performance in situations where an observable has computationally expensive listeners (e.g. changing filters in a viewer) or many dependencies (master fields with multiple detail fields). A common use of this observable is to delay validation of user input until the user stops typing in a UI field.

      To notify about pending changes, the returned observable fires a stale event when the wrapped observable value fires a change event, and remains stale until the delay has elapsed and the value change is fired. A call to IObservableValue.getValue() while a value change is pending will fire the value change immediately, short-circuiting the delay.

      Only updates resulting from the observed widget are delayed. Calls directly to IObservableValue.setValue(T) are not, and they cancel pending delayed values.

      Note that this observable will not forward ValueChangingEvent events from a wrapped IVetoableValue.

      This method is equivalent to SWTObservables.observeDelayedValue(delay, observe(widget)).

      Specified by:
      observeDelayed in interface IWidgetValueProperty<S extends Widget,T>
      Parameters:
      delay - the delay in milliseconds.
      widget - the source widget
      Returns:
      an observable value observing this value property on the given widget, and which delays change notifications for delay milliseconds.