IApplicationContext
содержит несколько методов, чтобы сообщить вам о том, что он называет «приложением для брендинга».
getBrandingApplication
дает вам идентификатор запущенного приложения (всегда org.eclipse.e4.ui.workbench.swt.E4Application` для e4, например).
getBrandingId
- идентификатор продукта.
getBrandingName
- имя, указанное для продукта.
В приложении e4 вы можете просто ввести IApplicationContext
.IApplication
приложениям передаются cpntext в качестве параметра метода запуска.Его также можно найти, выполнив поиск в службах OSGi:
IApplicationContext getApplicationContext(BundleContext context) {
Collection<ServiceReference<IApplicationContext>> references;
try {
references = context.getServiceReferences(IApplicationContext.class, "(eclipse.application.type=main.thread)");
} catch (InvalidSyntaxException e) {
return null;
}
if (references == null || references.isEmpty())
return null;
// assumes the application context is available as a service
ServiceReference<IApplicationContext> firstRef = references.iterator().next();
IApplicationContext result = context.getService(firstRef);
if (result != null) {
context.ungetService(firstRef);
return result;
}
return null;
}
(приведенный выше код адаптирован из org.eclipse.core.internal.runtimeInternalPlatform
)