Новичок в разработке плагинов 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. Я уверен, что делаю что-то действительно глупое из-за недостатка знаний, но любое руководство будет высоко оценено.