В приложении eclipse RCP можете ли вы определить перспективу в файле pluginCustomization?

Я хотел бы иметь возможность определить перспективу в моем приложении Eclipse RCP без написания для него класса Java. Это позволило бы мне изменить эту перспективу без перекомпиляции исходного кода и удаления ненужного класса Java.

На данный момент у меня есть перспектива, определенная в классе java, и если я хочу изменить ее без перекомпиляции, я могу сохранить ее под другим именем, экспортировать настройки в файл .epf (из моего работающего приложения) и вставить это _persp= строку в моем приложении pluginCustomization.ini, указанную во время выполнения с помощью -Declipse.pluginCustomization=.

Это работает, но я не могу заставить эти скопированные перспективы отображаться на панели дополнительных функций с помощью org.eclipse.ui/PERSPECTIVE_BAR_EXTRAS, такие перспективы xml почти невозможно редактировать, поскольку все они находятся в одной строке, и у меня все еще есть нежелательный класс Java, висящий вокруг этого Я не использую.

  • So, in an eclipse RCP application, is there a way define a perspective in your pluginCustomization file without it being backed by a java class?
    • If so, can you define the _persp= line with respect to a file, containing nicely formatted xml code, or are you stuck with everythingcompactedononeline?
  • В качестве альтернативы, есть ли другие способы добиться того, чего я хочу?

person Mark Booth    schedule 07.11.2013    source источник


Ответы (1)


Я не уверен, что это то, что вы ищете, но вы можете попытаться создать свою собственную точку расширения (см. http://www.vogella.com/articles/EclipseExtensionPoint/article.html), например. В этом случае вы могли бы выглядеть примерно так:

 <extension-point id="my.perspectives" name="perspectives" schema="perspectives.exsd"/>

с одним элементом «перспектива», который имеет атрибут «id», тип «идентификатор» и «org.eclipse.ui.perspectives/perspective/@id» в качестве ссылки (или вы можете сделать его просто типом «строка», если вы не хотите привязываться к каким-либо идентификаторам затмения).

В вашем plugin.xml добавьте что-то вроде этого:

<extension
         point="my.perspectives">
<perspective id="my.perpsective.id"/>
</extension>

Затем вы можете обработать свою точку расширения следующим образом:

for (IConfigurationElement element: Platform.getExtensionRegistry().getConfigurationElementsFor("my.perspectives")) {
  String perspectiveId = element.getAttribute("id");
}

И делайте все, что хотите, со своим идентификатором перспективы. Надеюсь, это поможет.

person Alex K.    schedule 07.11.2013