2013-09-17 3 views
0

Когда запускается RCP IApplication Eclipse, ему передается объект IApplicationContext, содержащий много информации о брендинге и конфигурации. Я хотел бы получить любую из той же информации - то есть результат вызова getBrandingApplication() или getBrandingName() - из любого другого плагина, а не из плагина приложения, без сотрудничества с плагином приложения. Другими словами, есть ли какой-либо метод, который я могу вызвать во время выполнения, чтобы получить идентификатор или местоположение текущего исполняемого приложения IApplication?Получение информации о брендинге приложения

ответ

2

IApplicationContext определен как служба OSGi, поэтому вы можете получить к нему доступ из любого плагина с помощью ServiceTracker или другого метода доступа. Что-то вроде:

ServiceTracker appContext = new ServiceTracker(bundle, IApplicationContext.class, null); 
appContext.open(); 

IApplicationContext context = appContext.getService(); 

Вы также можете получить доступ к информации с использованием getProperty метода IProduct который вы получаете от Platform.getProduct().

В приложении Eclipse 4 'e4' IApplicationContext находится в контексте Eclipse и может быть введено.

+0

Фантастический, спасибо! –

Смежные вопросы