Bug 93674 [Dialogs] ProgressMonitorDialog not cancellable when fork is set to false
Overview Description: Invoking the ProgressMonitorDialog::run(boolean fork, boolean cancelable, IRunnableWithProgress runnable) method with the fork parameter set to false, the user can't cancel the running dialog -even if the cancelable parameter is set to true. Steps to Reproduce: Simply launch a ProgressMonitorDialog and invoke its run method with fork parameter == false and cancelable parameter == true Actual Results: The Cancel button is not responsive to user clicks and the IProgressMonitor::isCanceled() will always regardless. Expected Results: When the suer clicks the Cancel button on the dialog, calling IProgressMonitor::isCanceled() should return true so that the executing IRunnableWithProgress can have a chance to honour the user's request and exit.
bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IRunnableContext.java
/*******************************************************************************
 * Copyright (c) 2000, 2004 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.jface.operation;
import java.lang.reflect.InvocationTargetException;
/**
 * Interface for UI components which can execute a long-running operation
 * in the form of an <code>IRunnableWithProgress</code>.
 * The context is responsible for displaying a progress indicator and Cancel
 * button to the end user while the operation is in progress; the context
 * supplies a progress monitor to be used from code running inside the operation.
 * Note that an <code>IRunnableContext</code> is not a runnable itself.
 * <p>
 * For examples of UI components which implement this interface,
 * see <code>ApplicationWindow</code>, <code>ProgressMonitorDialog</code>,
 * and <code>WizardDialog</code>.