/** * Returns an observable which delays notification of value change events * from <code>observable</code> until <code>delay</code> milliseconds have * passed since the last change event, or until a FocusOut event is received * from the underlying viewer control (whichever happens earlier). This * class helps to delay validation until the user stops changing the value * (e.g. until a user stops changing a viewer selection). To notify about * pending changes, the returned observable value will fire a stale event * when the wrapped observable value fires a change event, but this change * is being delayed. * * @param delay * the delay in milliseconds * @param observable * the observable being delayed * @return an observable which delays notification of value change events * from <code>observable</code> until <code>delay</code> * milliseconds have passed since the last change event. * * @since 1.3 */ public static IViewerObservableValue observeDelayedValue(int delay, IViewerObservableValue observable) { return new ViewerObservableValueDecorator(Observables .observeDelayedValue(delay, observable), observable.getViewer()); }