Eclipse 插件开发新手。我们正在开发一个自定义插件,它在 MyEclipse 10 上包含一个构建器,我相信它是 Eclipse Indigo。
无论如何,我使用了 Builder 向导生成的示例代码,对其进行了修改,并使其正常工作。现在我试图让“切换自然”动作更像是“添加自然”或“删除自然”,这取决于自然是否存在。
我在 plugin.xml 中有以下内容(我更改了一些名称以保护无辜者):
<extension
point="org.eclipse.ui.popupMenus">
<objectContribution
adaptable="true"
id="Sample_Eclipse_Plugin.contribution1"
nameFilter="*"
objectClass="org.eclipse.core.resources.IProject">
<menu
label="Sample"
id="mainSampleMenu"
menubarPath="additions">
<separator
name="group1">
</separator>
</menu>
<action
class="com.sample.eclipse.builder.AddSampleNatureAction"
enablesFor="+"
id="Sample_Eclipse_Plugin.addNatureAction"
label="Add Sample Project Nature"
menubarPath="mainSampleMenu/group1">
<enabledWhen>
<with variable="selection">
<iterate ifEmpty="false" operator="or">
<with variable="projectNature">
<not>
<equals value="Sample_Eclipse_Plugin.sampleNature"/>
</not>
</with>
</iterate>
</with>
</enabledWhen>
</action>
<action
class="com.sample.eclipse.builder.RemoveSampleNatureAction"
enablesFor="+"
id="Sample_Eclipse_Plugin.removeNatureAction"
label="Remove Sample Project Nature"
menubarPath="mainSampleMenu/group1">
<enabledWhen>
<with variable="selection">
<iterate ifEmpty="false" operator="or">
<with variable="projectNature">
<equals value="Sample_Eclipse_Plugin.sampleNature"/>
</with>
</iterate>
</with>
</enabledWhen>
</action>
</objectContribution>
</extension>
弹出菜单显示完美,但我仍然得到添加和删除选项。所有这些都是基于 Eclipse 生成的示例代码,我将通过 Google 搜索在网上找到的东西拼凑起来。由于缺乏知识,我确信我在做一些非常愚蠢的事情,但任何指导都将受到高度赞赏。