扩展点引用另一个扩展名

时间:2015-07-03 12:13:44

标签: eclipse-plugin


让我们考虑一个名为' Column Editor'的编辑器,其中我们有许多列。我们已将此列作为“扩展点”提供,以便任何想要提供列的人都可以添加“扩展程序”。到这个扩展点。

现在,我们正在为这些列提供排序功能。每当编辑器启动并且正在加载列时,列数据应按照默认列'进行排序。 (其中一个来自贡献的专栏)。

首先,我想为这些“扩展点”提供一个属性。设置是否为默认排序列。但是,提供了多项贡献' true'对于这个属性,它导致了歧义。

是否有值可以消除这种歧义并提供一个默认排序列的干净解决方案?

我想提供另一个扩展点,并说明哪个列可以是默认排序列。但是,这需要引用Extension。如何在扩展点中引用另一个扩展?

因此,我正考虑提供另一个扩展问题

1 个答案:

答案 0 :(得分:1)

一个扩展点指向另一个扩展点是很常见的。

例如,查看Ant编辑器声明:

 <extension
     point="org.eclipse.ui.editors">
  <editor
        name="%AntEditor.name"
        icon="$nl$/icons/full/obj16/ant_buildfile.png"
        class="org.eclipse.ant.internal.ui.editor.AntEditor"
        contributorClass="org.eclipse.ant.internal.ui.editor.AntEditorActionContributor"
        id="org.eclipse.ant.ui.internal.editor.AntEditor">
        <contentTypeBinding
           contentTypeId="org.eclipse.ant.core.antBuildFile"/> 
  </editor>

contentTypeBinding元素引用此处声明为contentTypeId的{​​{1}}:

org.eclipse.ant.core.antBuildFile

所以关键是为扩展提供唯一的ID。在您的扩展点架构中,您声明ID为必需并且类型为标识符