E4/Eclipse Application Services
- Receiving input.
- Producing selection.
- Persisting data (receiving persisted state, and producing persistable state).
- Accessing preferences (mostly read access, but sometimes write access).
- Managing shared resources (e.g. JFace LocalResourceManager).
- Status handling (errors and warnings).
- Connecting to the help system.
- Participating in Undo/Redo.
- Adapting objects.
- Participating in label and icon decoration.
- Reacting to changes to the context (such as plug-ins that come and go).
- Scheduling background work.
- Participating in editor lifecycle (units of saveability, dirtiness, saving, prompting to save).
- Dynamically contributing to the workbench model (e.g. tool items, menus, sub-parts).
- Updating enablement, labels, icons of menu and tool items.
- Registering command handlers.
- Reacting to changes to the workbench model.
- Reporting progress and responding to cancellation requests.
- Reporting status (think status line).
- Database connection.
- My EMF model.
Not sure about:
- String comparison/collation.
- String localization.