Bug 126839 [DataBinding] IObservable refactoring
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SyncRunnable.java
private Object result;
	/**
	 * Execute the code that is guaranteed to run on the Display thread
	 * @return Object 
	 */
	public abstract Object run();
	
	/**
	 * @param aDisplay
	 * @return Object the result of running the run() method
	 */
	public final Object runOn(Display aDisplay){
		if(aDisplay == Display.getCurrent()){
			result = run();
		} else {
			aDisplay.syncExec(new Runnable(){
				public void run(){
					result = SyncRunnable.this.run();
				}
			});
		}
		return result;		
	}
}