Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
E4/EAS/Progress Service
Based on a user's interaction with an application, the application may wish to schedule work to be done by other worker threads. The work that is done on these other worker threads may or may not be presented to the user. If background work is being invoked automatically based on some conditions, it may not necessarily be useful to present this information to the user. However, if the user explicitly invokes an action that causes a long-running operation to begin, they may wish to know about this so that they can respond accordingly when the operation has completed or just cancel the operation outright.
Eclipse 3.x API
In Eclipse 3.x, there are a variety of classes and interfaces that exposes progress reporting and work scheduling features.
- org.eclipse.jface.operation.IRunnableContext
- org.eclipse.ui.progress.IProgressService
- org.eclipse.ui.progress.IWorkbenchSiteProgressService
- org.eclipse.jface.operation.IRunnableWithProgress
- org.eclipse.core.runtime.jobs.Job
Typically, for scheduling work to be completed by a worker thread, the Jobs framework is used.
Job aJob = new Job("My long-running operation...") { protected IStatus run(IProgressMonitor monitor) { // do stuff and report progress via the IPM return Status.OK_STATUS; } }; // true to indicate that this job was initiated by a UI end user aJob.setUser(true);
In the IProgressService and IWorkbenchSiteProgressService case, these are queried from the local service locator.
e4 (Java)
Need to review the AC's meeting minutes prior to the creation of this e4 API.