display.syncExec(runnable);
display.asyncExec(runnable);
	public void firePropertyChangeEvent(String name, Object oldValue, Object newValue) {		if (!fSilent) {			final PropertyChangeEvent event= new PropertyChangeEvent(this, name, oldValue, newValue);			Object[] listeners= fListeners.getListeners();			for (int i= 0; i < listeners.length; i++) {				final IPropertyChangeListener listener= (IPropertyChangeListener)listeners[i];				Runnable runnable= new Runnable() {					public void run() {						listener.propertyChange(event);					}				};								if (Display.getCurrent() != null)					runnable.run();				else {					// Post runnable into UI thread					Shell shell= JavaPlugin.getActiveWorkbenchShell();					Display display;					if (shell != null)						display= shell.getDisplay();					else						display= Display.getDefault();					display.syncExec(runnable);				}			}		}	}