2014-06-20 4 views
0

Мне нужно добавить элемент в меню, которое открывается при щелчке правой кнопкой мыши на любом пакете.Добавление пункта меню при нажатии на пакет

, что я до сих пор не добавлял эти строки в plugin.xml:

<objectContribution id="myPlugin.menu" objectClass="org.eclipse.jdt.core.IPackageFragment"> 

    <menu id="myPlugin.menu1" label="My New Item"></menu> 

    <action 
      class="myPlugin.rightClickMenu.NewActivityAction" 
      enablesFor="1" 
      id="myPlugin.newAction" 
      label="Create New Activity" 
      menubarPath="myPlugin.menu1/group1"> 
    </action> 

</objectContribution> 

короче, это работает отлично, и делает все, что нужно. показывает «Мой новый элемент» в меню, которое открывается, когда я нажимаю правой кнопкой мыши на пакете. не работает, когда я нажимаю любые другие папки, файлы или проект, очень хорошо.

но

это осуждается ...

Я нашел другой способ сделать это:

<menuContribution locationURI="popup:org.eclipse.jdt.ui.PackageExplorer?before=additions"> 

<separator name="separetor1" visible="true"></separator> 

    <command commandId="openMyMenu" 
    label="My New Item" style="push">  
    </command> 

</menuContribution> 

<command defaultHandler="myPlugin.rightClickMenu.NewActivityAction" 

    id="openMyMenu" name="createActivity"> 

</command> 

это не осуждается, но это показывает мне «My New Item» в меню всегда, независимо от того, что я правой кнопкой мыши. даже для меню библиотеки JRE System.

Может ли кто-нибудь мне помочь?

Спасибо!

ответ

0

Вы должны использовать visibleWhen элемент в вашей команде в menuContribution:

<command commandId="openMyMenu" 
    label="My New Item" style="push">  
    <visibleWhen> 
     <iterate 
       ifEmpty="false" 
       operator="or"> 
      <adapt 
       type="org.eclipse.jdt.core.IPackageFragment"> 
      </adapt> 
     </iterate> 
    </visibleWhen> 
</command> 
+0

спасибо Грегу! работает как прелести. – amstel

+0

есть способ добавить мой пункт меню в меню: right-click-> New? – amstel

+0

Используйте добавочный пункт 'org.eclipse.ui.newWizards' для добавления в новое меню. Не забудьте принять ответы, которые решают вашу проблему (нажмите галочку). –

Смежные вопросы