Eclipse 3.0 - Concurrent Operations in the UI


There is a need to close on the issues regarding progress in Eclipse 3.0. The current support is adequate but we there are some remaining issues that should be addressed in order to make this new concurrency work accessible for new users, cohesive, and slick!

Operation kinds

In the following we need to distinguish between different kinds of background operations:

Issues

Long running Operation Feedback in 2.1

In the 2.1 release the users was shown the following feedback for the different operation kinds:
Observations: the user was often blocked but felt to be in control, i.e., they can cancel. It is clear when new information is available.

Long running Operation Feeback in 3.0

The 3.0 feedback implementation doesn't distinguish between user initiated and automatically triggered
operations:
So how are the progress issues addressed in 3.0:

Solutions and Alternatives

The following proposal distinguishes between user initiated and automatically triggered operations.

USER INITIATED OPERATIONS

You don't always want to run an operation in the background. The user should be in control whether an operation runs in the background. I often know that I want to wait until an operation is finished (e.g. checkout a project). In particular, I don't want to poll whether an operation is finished.

Therefore the suggestion is to give the user control over whether an operation should be run in the background.
This should not be done in a preference, but as follows:
  1. the operation starts, but initially it is shown with a "classic" modal progress dialog.
  2. the dialog provides a new option to run in the background
  3. the dialog offers a "don't ask me again" check box (not included in the screenshot below):
Once the user decides to run the operation in the background it is critical that the progress message (including cancel) is still visible. Options:
  1. make the progress dialog non-modal (as it is done in explorer). The dialog should become an "accumulating" progress dialog, i.e., if more than one operation is running, each of them should be shown in the dialog.
  2. show the status message in one of the result views. For example, the build progress would show at the top or bottom of the    problems view. Search already shows progress in the view's description ([running] "filx.txt" found 1).

AUTOMATICALLY INITIATED OPERATIONS

Consistent with the 2.1 solution an automatically initiated operation should be non-invasive, i.e., not show a progress dialog. However, they still need to show, that an operation has started, is in progress, and when it is done. One suggestion to show a fixed indicator for each of these operations in the status line (in the Eclipse SDK there is only auto build, and Synchronize.)
This can be a compact indicator. For example, for auto build this indicator should show that a build is in progress,
whether it has identified problems. Similarly, the Synchronize indicator (for scheduled synchronize operaitons )would show whether there are conflicts. It could be a similar indicator as is used in the overview ruler of the Java editor, for the error status of a single compilation unit.

Double clicking the indicator will reveal the result view, i.e., for a build the problems view. Hovering over the indicator shows information like the number of errors, or the number of conflicts for a scheduled synchronize. The progress of an automatically initiated operation should be shown in the accumulated progress dialog/control, but it should not automatically reveal it.

SYSTEM OPERATIONS

The current Progress view should become a Jobs view, that is a debugging aid for plug-in developers. It is not intended for the end-user,
smiliar as Show View>PDE Runtime>Plug-in Registry.

Summary

Meeting Summary 2004-03-31

Attendees: Mike Wilson, Jean-Michel Lemieux, John Arthorne, Tod Creasey, Erich Gamma, Michael Van Meekeren, Andre Weinand

First dynamic team meeting. We reviewed the items listed in the summary section and have agreed on the following work to improve the background job support (some items don't have names - these are decisions that we're made but don't have an immediate action item):

Meeting Summary 2004-04-01

Attendees: Mike Wilson, Jean-Michel Lemieux, John Arthorne, Tod Creasey, Erich Gamma, Andre Weinand

By next week we should have a hooked-up progress view with the required APIs from core to display icons and pass-in the properties. Tod should have a prototype of the modal 'run in background' dialog as well as the job familly support for the workbench parts.

Meeting Summary 2004-04-01