让我们考虑一个名为' Column Editor'的编辑器,其中我们有许多列。我们已将此列作为“扩展点”提供,以便任何想要提供列的人都可以添加“扩展程序”。到这个扩展点。
现在,我们正在为这些列提供排序功能。每当编辑器启动并且正在加载列时,列数据应按照默认列'进行排序。 (其中一个来自贡献的专栏)。
首先,我想为这些“扩展点”提供一个属性。设置是否为默认排序列。但是,提供了多项贡献' true'对于这个属性,它导致了歧义。
是否有值可以消除这种歧义并提供一个默认排序列的干净解决方案?
我想提供另一个扩展点,并说明哪个列可以是默认排序列。但是,这需要引用Extension。如何在扩展点中引用另一个扩展?
因此,我正考虑提供另一个扩展问题
答案 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为必需并且类型为标识符