Bug 180746 [DataBinding] TextObservableValue should take a delay-argument
Sometimes SWT.Modify is needed as update event type but the performance (number of propagated update-events) should be similar to SWT.FocusOut. Therefore I suggest to create an additional constructor with a parameter int delayInMilliseconds which defines a delay between the time the last SWT.Modify-Event occured and fireValueChanging() is called. This will allow the customer to enter multiple characters without starting a validation each time. A further advance is when binding the validation result to a label or similar, the label won't change confusingly while you still enter your text. The current structure of TextObservableValue doesn't provide a way to achieve the described behaviour by subclassing without reimplementation. Maybe this behaviour can even be useful whit SWT.FocusOut ? More information:
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/SWTObservables.java
private static java.util.List realms = new ArrayList();
	/**
	 * Returns the realm representing the UI thread for the given display.
	 * 
	 * @param display
	 * @return the realm representing the UI thread for the given display
	 */
	public static Realm getRealm(final Display display) {
		synchronized (realms) {
			for (Iterator it = realms.iterator(); it.hasNext();) {
				DisplayRealm displayRealm = (DisplayRealm) it.next();
				if (displayRealm.display == display) {
					return displayRealm;
				}
			}
			DisplayRealm result = new DisplayRealm(display);
			realms.add(result);
			return result;
		}
	}
	/**
	 * @param control
	 * @return an observable value tracking the enabled state of the given
	 *         control
	 */
	public static ISWTObservableValue observeEnabled(Control control) {
		return new ControlObservableValue(control, SWTProperties.ENABLED);