Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.commons.ui/src/org/eclipse/mylyn/internal/provisional/commons/ui/ProgressContainer.java')
-rw-r--r--org.eclipse.mylyn.commons.ui/src/org/eclipse/mylyn/internal/provisional/commons/ui/ProgressContainer.java258
1 files changed, 0 insertions, 258 deletions
diff --git a/org.eclipse.mylyn.commons.ui/src/org/eclipse/mylyn/internal/provisional/commons/ui/ProgressContainer.java b/org.eclipse.mylyn.commons.ui/src/org/eclipse/mylyn/internal/provisional/commons/ui/ProgressContainer.java
deleted file mode 100644
index 13010ce0..00000000
--- a/org.eclipse.mylyn.commons.ui/src/org/eclipse/mylyn/internal/provisional/commons/ui/ProgressContainer.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2010 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
- * Chris Gross (schtoo@schtoo.com) - patch for bug 16179
- * Tasktop Technologies - extracted code for Mylyn
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.provisional.commons.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.ProgressMonitorWrapper;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.ModalContext;
-import org.eclipse.jface.wizard.ProgressMonitorPart;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A helper class for running operations in dialogs. Based on {@link WizardDialog}.
- *
- * @author Steffen Pingel
- * @deprecated use {@link org.eclipse.mylyn.commons.ui.ProgressContainer} instead
- */
-@Deprecated
-public class ProgressContainer implements IRunnableContext {
-
- private static final String FOCUS_CONTROL = "focusControl"; //$NON-NLS-1$
-
- // The number of long running operation executed from the dialog.
- private long activeRunningOperations = 0;
-
- private Cursor arrowCursor;
-
- private Button cancelButton;
-
- private boolean lockedUI = false;
-
- // The progress monitor
- private final ProgressMonitorPart progressMonitorPart;
-
- private final Shell shell;
-
- private Cursor waitCursor;
-
- private boolean useWaitCursor;
-
- public ProgressContainer(Shell shell, ProgressMonitorPart progressMonitorPart) {
- Assert.isNotNull(shell);
- Assert.isNotNull(progressMonitorPart);
- this.shell = shell;
- this.progressMonitorPart = progressMonitorPart;
- init();
- }
-
- private void init() {
- this.shell.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- progressMonitorPart.setCanceled(true);
- }
- });
- }
-
- public boolean useWaitCursor() {
- return useWaitCursor;
- }
-
- public void setUseWaitCursor(boolean useWaitCursor) {
- this.useWaitCursor = useWaitCursor;
- }
-
- /**
- * About to start a long running operation triggered through the wizard. Shows the progress monitor and disables the
- * wizard's buttons and controls.
- *
- * @param enableCancelButton
- * <code>true</code> if the Cancel button should be enabled, and <code>false</code> if it should be
- * disabled
- * @return the saved UI state
- */
- private Object aboutToStart(boolean enableCancelButton) {
- Map<Object, Object> savedState = null;
- if (getShell() != null) {
- // Save focus control
- Control focusControl = getShell().getDisplay().getFocusControl();
- if (focusControl != null && focusControl.getShell() != getShell()) {
- focusControl = null;
- }
- // Set the busy cursor to all shells.
- Display d = getShell().getDisplay();
- if (useWaitCursor()) {
- waitCursor = new Cursor(d, SWT.CURSOR_WAIT);
- setDisplayCursor(waitCursor);
- // Set the arrow cursor to the cancel component.
- arrowCursor = new Cursor(d, SWT.CURSOR_ARROW);
- if (cancelButton != null) {
- cancelButton.setCursor(arrowCursor);
- }
- }
- // Deactivate shell
- savedState = new HashMap<Object, Object>(10);
- saveUiState(savedState);
- if (focusControl != null) {
- savedState.put(FOCUS_CONTROL, focusControl);
- }
- // Attach the progress monitor part to the cancel button
- if (cancelButton != null) {
- progressMonitorPart.attachToCancelComponent(cancelButton);
- }
- progressMonitorPart.setVisible(true);
- }
- return savedState;
- }
-
- public Button getCancelButton() {
- return cancelButton;
- }
-
- private IProgressMonitor getProgressMonitor() {
- return new ProgressMonitorWrapper(progressMonitorPart) {
- @Override
- public void internalWorked(double work) {
- if (progressMonitorPart.isDisposed()) {
- this.setCanceled(true);
- return;
- }
- super.internalWorked(work);
- }
- };
- }
-
- public Shell getShell() {
- return shell;
- }
-
- public boolean isActive() {
- return activeRunningOperations > 0;
- }
-
- public boolean isLockedUI() {
- return lockedUI;
- }
-
- protected void restoreUiState(Map<Object, Object> state) {
- // ignore
-
- }
-
- /**
- * This implementation of IRunnableContext#run(boolean, boolean, IRunnableWithProgress) blocks until the runnable
- * has been run, regardless of the value of <code>fork</code>. It is recommended that <code>fork</code> is set to
- * true in most cases. If <code>fork</code> is set to <code>false</code>, the runnable will run in the UI thread and
- * it is the runnable's responsibility to call <code>Display.readAndDispatch()</code> to ensure UI responsiveness.
- * UI state is saved prior to executing the long-running operation and is restored after the long-running operation
- * completes executing. Any attempt to change the UI state of the wizard in the long-running operation will be
- * nullified when original UI state is restored.
- */
- public void run(boolean fork, boolean cancelable, IRunnableWithProgress runnable) throws InvocationTargetException,
- InterruptedException {
- // The operation can only be canceled if it is executed in a separate
- // thread.
- // Otherwise the UI is blocked anyway.
- Object state = null;
- if (activeRunningOperations == 0) {
- state = aboutToStart(fork && cancelable);
- }
- activeRunningOperations++;
- try {
- if (!fork) {
- lockedUI = true;
- }
- ModalContext.run(runnable, fork, getProgressMonitor(), getShell().getDisplay());
- lockedUI = false;
- } finally {
- activeRunningOperations--;
- // Stop if this is the last one
- if (state != null) {
- stopped(state);
- }
- }
- }
-
- protected void saveUiState(Map<Object, Object> savedState) {
- // ignore
-
- }
-
- public void setCancelButton(Button cancelButton) {
- this.cancelButton = cancelButton;
- }
-
- /**
- * Sets the given cursor for all shells currently active for this window's display.
- *
- * @param c
- * the cursor
- */
- private void setDisplayCursor(Cursor c) {
- Shell[] shells = getShell().getDisplay().getShells();
- for (Shell shell2 : shells) {
- shell2.setCursor(c);
- }
- }
-
- /**
- * A long running operation triggered through the wizard was stopped either by user input or by normal end. Hides
- * the progress monitor and restores the enable state wizard's buttons and controls.
- *
- * @param savedState
- * the saved UI state as returned by <code>aboutToStart</code>
- * @see #aboutToStart
- */
- @SuppressWarnings("unchecked")
- private void stopped(Object savedState) {
- if (getShell() != null && !getShell().isDisposed()) {
- progressMonitorPart.setVisible(false);
- if (cancelButton != null) {
- progressMonitorPart.removeFromCancelComponent(cancelButton);
- }
-
- Map<Object, Object> state = (Map<Object, Object>) savedState;
- restoreUiState(state);
- if (waitCursor != null) {
- setDisplayCursor(null);
- if (cancelButton != null) {
- cancelButton.setCursor(null);
- }
- waitCursor.dispose();
- waitCursor = null;
- arrowCursor.dispose();
- arrowCursor = null;
- }
- Control focusControl = (Control) state.get(FOCUS_CONTROL);
- if (focusControl != null && !focusControl.isDisposed()) {
- focusControl.setFocus();
- }
- }
- }
-
-} \ No newline at end of file

Back to the top