Bug 29163 SafeRunnable needs to be accessible in JFace
We need to be able to access the SafeRunnable in JFace in order that some error protection can be added to preferences and properties dialogs.
bundles/org.eclipse.ui.workbench/extensions/org/eclipse/jface/window/ApplicationWindow.java
if (toolbarControl != null) 
			toolbarWasEnabled = toolbarControl.isEnabled();
	
		
		Shell[] shells = display.getShells();
		boolean[] enabled = new boolean[shells.length];
		for (int i = 0; i < shells.length; i++) {
			Shell current = shells[i];
			if (current == shell) continue;
			if (current != null && !current.isDisposed()) {
				enabled[i] = current.isEnabled();
				current.setEnabled(false);
			}
		}
	
		Control currentFocus = display.getFocusControl();
		try {
			contents.setEnabled(false);
			if (menuBar != null) menuBar.setEnabled(false);
			if (toolbarControl != null) toolbarControl.setEnabled(false);
			mgr.setCancelEnabled(cancelable);
			final Exception[] holder = new Exception[1];
			BusyIndicator.showWhile(display, new Runnable() {
				public void run() {
					try {
						ModalContext.run(runnable, fork, mgr.getProgressMonitor(), display);
					} catch (InvocationTargetException ite) {
						holder[0] = ite;
					} catch (InterruptedException ie) {
						holder[0] = ie;