Skip to main content
Jump to: navigation, search


< Eclipse4‎ | API
Revision as of 08:30, 8 March 2013 by (Talk | contribs) (EContextService)

Services and Context Values

This section will describe which elements are guaranteed to be available for injection through the IEclipseContext. The most common of these will be the 'standard' services but will also reference some other 'value' elements (i.e. the injected value is *not* an interface itself but some discreet value such as a preference or model event).

Basic Services


This service presents API appropriate for working with the UI Model. If contains methods to search for model elements via a variety of search parameters a well as operations that can be used to manipulate the model to achieve changes in the UI.


This service provides API that deals with the runtime aspects of managin the current workbench UI such as opening new parts or getting / setting the 'active' part...

Can currently NOT used to open new parts as you cannot define the container, see


This service allows manipulation of the key binding structures.

This services is used by the model to push key bindings into the runtime. It needs polish and I don't think it should be API for Kepler.


Provides API to control the active 'chain' within a context structure.

The EContextService is important to programmatic clients, for activating contexts in their @PostConstruct or managing context activations based on the state of their controls (which widgets have focus, etc).
Except for deferUpdates(*), that should be marked as @noreference


Provides API to construct Commands.

Why is there no 'Execute' ?


This provides API to manage Handlers.

Why do the Execute methods take in Parameterized Commands (perhaps Execute should be in the CommandService and take a Handler?)

What's 'getContext' for ?


Provides a single API to register context menus.

In the UI Model a MPart can have any number of menus, each with a unique id. Do we need this or should we have a 'showMenu(id)' method ?<span style="font-style: italic;" />


This allows for registration of listeners regarding the current selection. Note that this has more functionality in it than the @Inject approach since it provides 'post selection' (i.e. deferred) listeners as well as regular listeners.


Allows access to the OSGI event broker and can be used to register / unregister listeners on the UIModel.

Back to the top