Затмение RCP и итерации по перспективам и представлениям - PullRequest
1 голос
/ 15 ноября 2010

У меня есть приложение Eclipse RCP со множеством плагинов. Каждый плагин имеет свою собственную перспективу с новыми представлениями или общими представлениями. Мне нужно создать отдельное приложение на основе исходного с плагинами. Это приложение будет действовать как конфигуратор разрешений для каждого плагина / перспективы.

Для этого мне нужно сделать следующее:

  • принудительная инициализация всех плагинов при запуске
  • получить все перспективные объекты в приложении и отобразить идентификаторы
  • для каждой перспективы получить все виды, связанные с перспективой, и отобразить ее идентификаторы
  • для каждого объекта представления получить все свойства (фактически каждое представление будет наследоваться от специального базового объекта: например, SpecialView)

На основании этой одной специальной роли (Администратор) будут настраиваться разрешения для всех других ролей (какая перспектива должна отображаться, в каждой перспективе, какие представления будут отображаться, в каждом представлении, какие команды будут активными и т. Д.).

У меня есть вопросы относительно вышеуказанных требований:

  • Как принудительно инициализировать все плагины при запуске (Eclipse использует отложенную активацию)?
  • Как получить перспективные объекты (не IPerspectiveDescriptor) и просмотреть объекты?

1 Ответ

0 голосов
/ 16 ноября 2010

Для принудительной активации вы можете установить флаг в редакторе plugin.xml, при условии, что плагин является Singleton.

Чтобы найти виды и перспективы, вы можете циклически изменить реестр расширений, предоставляя правильныеидентификаторы плагинов и точки расширения вида и перспективы:

IExtensionRegistry er = Platform.getExtensionRegistry();
IExtensionPoint ep = er.getExtensionPoint(plug-in_id, extensionId);
IExtensions[] ext = ep.getExtensions();

Если у вас есть расширения, вы можете иметь класс, реализующий их, и т. д.

...