Добавление пункта меню при нажатии на пакет

#eclipse-plugin

#eclipse-плагин

Вопрос:

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

то, что я делал до сих пор, добавляло эти строки в 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>
  

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

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

Спасибо!

Ответ №1:

Вам нужно использовать 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>
  

Комментарии:

1. есть ли способ добавить мой пункт меню в: щелкните правой кнопкой мыши -> Новое меню?

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

3. Я знаю, как добавить новых мастеров в «Файл-> Создать-> Проект». мой вопрос: возможно ли добавить элемент в меню правой кнопки мыши (только над пакетами), и тогда мой элемент будет там?