Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.jface.operation
Class ModalContext

    java.lang.Object
      org.eclipse.jface.operation.ModalContext

public class ModalContext
extends Object

Utility class for supporting modal operations. The runnable passed to the `run` method is executed in a separate thread, depending on the value of the passed fork argument. If the runnable is executed in a separate thread then the current thread either waits until the new thread ends or, if the current thread is the UI thread, it polls the SWT event queue and dispatches each event.

This class is not intended to be subclassed.

Constructor Summary
`ModalContext()`

Method Summary
`static boolean` | `canProgressMonitorBeUsed(IProgressMonitor monitor1, IProgressMonitor monitor2)` Returns whether the first progress monitor is the same as, or a wrapper around, the second progress monitor.
`static void` | `checkCanceled(IProgressMonitor monitor)` Checks with the given progress monitor and throws `InterruptedException` if it has been canceled.
`static int` | `getModalLevel()` Returns the modal nesting level.
`static boolean` | `isModalContextThread(Thread thread)` Returns whether the given thread is running a modal context.
`static void` | `run(IRunnableWithProgress operation, boolean fork, IProgressMonitor monitor, Display display)` Runs the given runnable in a modal context, passing it a progress monitor.
`static void` | `setDebugMode(boolean debugMode)` Sets whether ModalContext is running in debug mode.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ModalContext

    public ModalContext()

Method Detail

### canProgressMonitorBeUsed

    public static boolean canProgressMonitorBeUsed(IProgressMonitor monitor1,
                                                   IProgressMonitor monitor2)

  Returns whether the first progress monitor is the same as, or a wrapper around, the second progress monitor.

  Parameters:
    `monitor1` - the first progress monitor
    `monitor2` - the second progress monitor
  Returns:
    `true` if the first is the same as, or a wrapper around, the second
  See Also:
    `ProgressMonitorWrapper`

### checkCanceled

    public static void checkCanceled(IProgressMonitor monitor)
                              throws InterruptedException

  Checks with the given progress monitor and throws `InterruptedException` if it has been canceled.

  Code in a long-running operation should call this method regularly so that a request to cancel will be honored.

  Convenience for:

       if (monitor.isCanceled())
          throw new InterruptedException();

  Parameters:
    `monitor` - the progress monitor
  Throws:
    `InterruptedException` - if cancelling the operation has been requested
  See Also:
    `IProgressMonitor.isCanceled()`

### getModalLevel

    public static int getModalLevel()

  Returns the modal nesting level.

  The modal nesting level increases by one each time the `ModalContext.run` method is called within the dynamic scope of another call to `ModalContext.run`.

  Returns:
    the modal nesting level, or `0` if this method is called outside the dynamic scope of any invocation of `ModalContext.run`

### isModalContextThread

    public static boolean isModalContextThread(Thread thread)

  Returns whether the given thread is running a modal context.

  Returns:
    `true` if the given thread is running a modal context, `false` if not

### run

    public static void run(IRunnableWithProgress operation,
                           boolean fork,
                           IProgressMonitor monitor,
                           Display display)
                    throws InvocationTargetException,
                           InterruptedException

  Runs the given runnable in a modal context, passing it a progress monitor.

  The modal nesting level is increased by one from the perspective of the given runnable.

  Parameters:
    `operation` - the runnable to run
    `fork` - `true` if the runnable should run in a separate thread, and `false` if in the same thread
    `monitor` - the progress monitor to use to display progress and receive requests for cancelation
    `display` - the display to be used to read and dispatch events
  Throws:
    `InvocationTargetException` - if the run method must propagate a checked exception, it should wrap it inside an `InvocationTargetException`; runtime exceptions and errors are automatically wrapped in an `InvocationTargetException` by this method
    `InterruptedException` - if the operation detects a request to cancel, using `IProgressMonitor.isCanceled()`, it should exit by throwing `InterruptedException`; this method propagates the exception

### setDebugMode

    public static void setDebugMode(boolean debugMode)

  Sets whether ModalContext is running in debug mode.

  Parameters:
    `debugMode` - `true` for debug mode, and `false` for normal mode (the default)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.