Bug 49182 What should canceling setRawClasspath do ?
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/viewsupport/GoToBackProgressMonitorDialog.java
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.IconAndMessageDialog;
import org.eclipse.jface.dialogs.ProgressIndicator;
import org.eclipse.jface.operation.IRunnableContext;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.util.Assert;
import org.eclipse.jdt.internal.ui.JavaUIStatus;
/**
 * Progress monitor with a 'Go to background button' 
 */
public class GoToBackProgressMonitorDialog extends IconAndMessageDialog implements IRunnableContext {
	private class MyJob extends Job {
		private IRunnableWithProgress runnable;
		private volatile boolean continueEventDispatching = true;
		private Display display;
		public MyJob(IRunnableWithProgress operation, Display display) {
			super("Running Operation"); 
			this.runnable = operation;
			this.display = display;
		}
				
		/* (non-Javadoc)
		 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
		 */
		protected IStatus run(IProgressMonitor monitor) {
			progressMonitor.setWrapped(monitor);