Interface IProgressService
- All Superinterfaces:
- IRunnableContext
- All Known Subinterfaces:
- IWorkbenchSiteProgressService
All methods on the progress service must be called from the UI thread.
This service can be acquired from your service locator:
IProgressService service = (IProgressService) getSite().getService(IProgressService.class);
- This service is available globally.
 NOTE The progress service must be referenced at least once
 before it will become the progress provider for the IJobManager in
 the workbench. This connection is done lazily so that RCP applications will
 not have to use the IProgressService as the ProgressProvider
 to the jobs framework if they do not wish to reference it.
 
- Since:
- 3.0
- See Also:
- Restriction:
- This interface is not intended to be implemented by clients.
- 
Method SummaryModifier and TypeMethodDescriptionvoidbusyCursorWhile(IRunnableWithProgress runnable) Set the cursor to busy and run the runnable in a non-UI Thread.getIconFor(Job job) Get the icon that has been registered for a Job by checking if the job belongs to any of the registered families.intThe time at which an operation becomes considered a long operation.voidregisterIconForFamily(ImageDescriptor icon, Object family) Register the ImageDescriptor to be the icon used for all jobs that belong to family within the workbench.voidrun(boolean fork, boolean cancelable, IRunnableWithProgress runnable) This specialization of IRunnableContext#run(boolean, boolean, IRunnableWithProgress) might run the runnable asynchronously ifforkistrue.voidrunInUI(IRunnableContext context, IRunnableWithProgress runnable, ISchedulingRule rule) Runs the given operation in the UI thread using the given runnable context.voidshowInDialog(Shell shell, Job job) Open a dialog on job when it starts to run and close it when the job is finished.
- 
Method Details- 
getLongOperationTimeint getLongOperationTime()The time at which an operation becomes considered a long operation. Used to determine when the busy cursor will be replaced with a progress monitor.- Returns:
- int
- See Also:
 
- 
registerIconForFamilyRegister the ImageDescriptor to be the icon used for all jobs that belong to family within the workbench.- Parameters:
- icon- ImageDescriptor that will be used when the job is being displayed
- family- The family to associate with
- See Also:
 
- 
runInUIvoid runInUI(IRunnableContext context, IRunnableWithProgress runnable, ISchedulingRule rule) throws InvocationTargetException, InterruptedException Runs the given operation in the UI thread using the given runnable context. The given scheduling rule, if any, will be acquired for the duration of the operation. If the rule is not available when this method is called, a progress dialog will be displayed that gives users control over the background processes that may be blocking the runnable from proceeding.This method can act as a wrapper for uses of IRunnableContextwhere theforkparameter wasfalse.Note: Running long operations in the UI thread is generally not recommended. This can result in the UI becoming unresponsive for the duration of the operation. Where possible, busyCursorWhileshould be used instead.Modal dialogs should also be avoided in the runnable as there will already be a modal progress dialog open when this operation runs. - Parameters:
- context- The runnable context to run the operation in
- runnable- The operation to run
- rule- A scheduling rule, or- null
- Throws:
- InvocationTargetException- wraps any exception or error which occurs while running the runnable
- InterruptedException- propagated by the context if the runnable acknowledges cancelation by throwing this exception.
- See Also:
 
- 
getIconForGet the icon that has been registered for a Job by checking if the job belongs to any of the registered families.- Parameters:
- job- job to get icon for
- Returns:
- Icon or nullif there isn't one.
- See Also:
 
- 
busyCursorWhilevoid busyCursorWhile(IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException Set the cursor to busy and run the runnable in a non-UI Thread. The calling thread will be blocked for the duration of the execution of the supplied runnable. After the cursor has been running forgetLongOperationTime()replace it with a ProgressMonitorDialog so that the user may cancel. Do not open the ProgressMonitorDialog if there is already a modal dialog open.- Parameters:
- runnable- The runnable to execute and show the progress for.
- Throws:
- InvocationTargetException- if executed operation failed
- InterruptedException- if operation is interrupted
- See Also:
 
- 
runvoid run(boolean fork, boolean cancelable, IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException This specialization of IRunnableContext#run(boolean, boolean, IRunnableWithProgress) might run the runnable asynchronously ifforkistrue.- Specified by:
- runin interface- IRunnableContext
- Parameters:
- fork-- trueif the runnable should be run in a separate thread, and- falseto run in the same thread
- cancelable-- trueto enable the cancelation, and- falseto make the operation uncancellable
- runnable- the runnable to run
- Throws:
- InvocationTargetException- wraps any exception or error which occurs while running the runnable
- InterruptedException- propagated by the context if the runnable acknowledges cancelation by throwing this exception. This should not be thrown if cancelable is- false.
- Since:
- 3.2
 
- 
showInDialogOpen a dialog on job when it starts to run and close it when the job is finished. Wait for ProgressManagerUtil#SHORT_OPERATION_TIME before opening the dialog. Do not open if it is already done or if the user has set a preference to always run in the background. Parent the dialog from the shell.- Parameters:
- shell- The Shell to parent the dialog from or- nullif the active shell is to be used.
- job- The Job that will be reported in the dialog. job must not be- null.
 
 
-