E4/Eclipse Application Services
- Life cycle - initialization and disposal.
- Status handling (errors and warnings).
- Logging over and above status handling.
- Scheduling background work.
- Accessing preferences (mostly read access, but sometimes write access).
- Reporting status (think status line).
- Adapting objects.
Specific to UI Parts
- Receiving input.
- Producing selection.
- Persisting data (receiving persisted state, and producing persistable state).
- Managing shared resources (e.g. JFace LocalResourceManager).
- Connecting to the help system.
- Participating in Undo/Redo.
- Participating in editor lifecycle (units of saveability, dirtiness, saving, prompting to save).
- Updating enablement, labels, icons of menu and tool items.
- Registering command handlers.
Specific to Command Handlers
- Reporting progress and responding to cancellation requests.
- Shell Provider (for properly parenting dialogs).
- Reacting to changes to the workbench model.
- Participating in label and icon decoration.
- Reacting to changes to the context (such as plug-ins that come and go).
- Dynamically contributing to the workbench model (e.g. tool items, menus, sub-parts).
- Database connection.
- Getting hold of the domain model, e.g. in the form of an EMF model.
Not Sure About These
- String comparison/collation.
- String localization.