Eclipse4/RCP/EAS/Obtaining Services
From Eclipsepedia
The services are set by the dependency injection framework when your objects gets instantiated (or explicitly injected).
Contents |
Injection of objects
The services that should be injected can be marked by the @Inject annotation.
Fields
public class AccountsPart { @Inject private Logger logger; }
Methods
public class AccountsPart { private Logger logger; @Inject void setLogger(Logger logger) { this.logger = logger; } }
Injection for method invocation
Here is an example of a handler's method being invoked by the framework with its parameters being provided through dependency injection.
public class ShowPartHandler { @Execute void execute(EPartService partService) { String partId = /* retrieve the desired id */; partService.showPart(partId, EPartService.PartState.ACTIVATE); } }
Service retrieval through the context
Services can also be retrieved from the IEclipseContext using its get(Class<T>) and get(String) methods.
java.lang.Class
EPartService partService = context.get(EPartService.class);
java.lang.String
MPart part = (MPart) context.get(IServiceConstants.ACTIVE_PART);