| java.lang.Object org.eclipse.jface.operation.ModalContext
ModalContext | public class ModalContext (Code) | | 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.
|
Method Summary | |
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. | public static void | checkCanceled(IProgressMonitor monitor) Checks with the given progress monitor and throws
InterruptedException if it has been canceled. | public static int | getModalLevel() Returns the modal nesting level. | public static boolean | isModalContextThread(Thread thread) Returns whether the given thread is running a modal context. | public static void | run(IRunnableWithProgress operation, boolean fork, IProgressMonitor monitor, Display display) 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.
If the supplied operation implements IThreadListener , it
will be notified of any thread changes required to execute the operation.
Specifically, the operation will be notified of the thread that will call its
run method before it is called, and will be notified of the
change of control back to the thread calling this method when the operation
completes. | public static void | setAllowReadAndDispatch(boolean allowReadAndDispatch) Sets whether ModalContext may process events (by calling Display.readAndDispatch() )
while running operations. | public static void | setDebugMode(boolean debugMode) Sets whether ModalContext is running in debug mode. |
canProgressMonitorBeUsed | public static boolean canProgressMonitorBeUsed(IProgressMonitor monitor1, IProgressMonitor monitor2)(Code) | | Returns whether the first progress monitor is the same as, or
a wrapper around, the second progress monitor.
Parameters: monitor1 - the first progress monitor Parameters: monitor2 - the second progress monitor true if the first is the same as, ora wrapper around, the second See Also: ProgressMonitorWrapper |
checkCanceled | public static void checkCanceled(IProgressMonitor monitor) throws InterruptedException(Code) | | 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 exception: InterruptedException - if cancelling the operation has been requested See Also: IProgressMonitor.isCanceled |
getModalLevel | public static int getModalLevel()(Code) | | 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 .
the modal nesting level, or 0 if this method is called outside the dynamic scope of anyinvocation of ModalContext.run |
isModalContextThread | public static boolean isModalContextThread(Thread thread)(Code) | | Returns whether the given thread is running a modal context.
Parameters: thread - The thread to be checked 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(Code) | | 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.
If the supplied operation implements IThreadListener , it
will be notified of any thread changes required to execute the operation.
Specifically, the operation will be notified of the thread that will call its
run method before it is called, and will be notified of the
change of control back to the thread calling this method when the operation
completes. These thread change notifications give the operation an
opportunity to transfer any thread-local state to the execution thread before
control is transferred to the new thread.
Parameters: operation - the runnable to run Parameters: fork - true if the runnable should run in a separate thread,and false if in the same thread Parameters: monitor - the progress monitor to use to display progress and receiverequests for cancelation Parameters: display - the display to be used to read and dispatch events exception: InvocationTargetException - if the run method must propagate a checked exception,it should wrap it inside an InvocationTargetException ; runtime exceptions and errors are automaticallywrapped in an InvocationTargetException by this method exception: InterruptedException - if the operation detects a request to cancel, using IProgressMonitor.isCanceled() , it should exit by throwing InterruptedException ; this method propagates the exception |
setAllowReadAndDispatch | public static void setAllowReadAndDispatch(boolean allowReadAndDispatch)(Code) | | Sets whether ModalContext may process events (by calling Display.readAndDispatch() )
while running operations. By default, ModalContext will process events while running operations.
Use this method to disallow event processing temporarily.
Parameters: allowReadAndDispatch - true (the default) if events may be processed whilerunning an operation, false if Display.readAndDispatch() should not be calledfrom ModalContext. since: 3.2 |
setDebugMode | public static void setDebugMode(boolean debugMode)(Code) | | Sets whether ModalContext is running in debug mode.
Parameters: debugMode - true for debug mode, and false for normal mode (the default) |
|
|