Class ModalContext
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 SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic booleancanProgressMonitorBeUsed(IProgressMonitor monitor1, IProgressMonitor monitor2) Returns whether the first progress monitor is the same as, or a wrapper around, the second progress monitor.static voidcheckCanceled(IProgressMonitor monitor) Checks with the given progress monitor and throwsInterruptedExceptionif it has been canceled.static intReturns the modal nesting level.static booleanisModalContextThread(Thread thread) Returns whether the given thread is running a modal context.static voidrun(IRunnableWithProgress operation, boolean fork, IProgressMonitor monitor, Display display) Runs the given runnable in a modal context, passing it a progress monitor.static voidsetAllowReadAndDispatch(boolean allowReadAndDispatch) Sets whether ModalContext may process events (by callingDisplay.readAndDispatch()) while running operations.static voidsetDebugMode(boolean debugMode) Sets whether ModalContext is running in debug mode.
- 
Constructor Details- 
ModalContextpublic ModalContext()
 
- 
- 
Method Details- 
canProgressMonitorBeUsedpublic 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:
- trueif the first is the same as, or a wrapper around, the second
- See Also:
 
- 
checkCanceledChecks with the given progress monitor and throwsInterruptedExceptionif 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 canceling the operation has been requested
- See Also:
 
- 
getModalLevelpublic static int getModalLevel()Returns the modal nesting level.The modal nesting level increases by one each time the ModalContext.runmethod is called within the dynamic scope of another call toModalContext.run.- Returns:
- the modal nesting level, or 0if this method is called outside the dynamic scope of any invocation ofModalContext.run
 
- 
isModalContextThreadReturns whether the given thread is running a modal context.- Parameters:
- thread- The thread to be checked
- Returns:
- trueif the given thread is running a modal context,- falseif not
 
- 
runpublic 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. 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 itsrunmethod 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
- fork-- trueif the runnable should run in a separate thread, and- falseif in the same thread
- monitor- the progress monitor to use to display progress and receive requests for cancellation
- 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- InvocationTargetExceptionby 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
 
- 
setDebugModepublic static void setDebugMode(boolean debugMode) Sets whether ModalContext is running in debug mode.- Parameters:
- debugMode-- truefor debug mode, and- falsefor normal mode (the default)
 
- 
setAllowReadAndDispatchpublic static void setAllowReadAndDispatch(boolean allowReadAndDispatch) Sets whether ModalContext may process events (by callingDisplay.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 while running an operation,- falseif Display.readAndDispatch() should not be called from ModalContext.
- Since:
- 3.2
 
 
-