Разработка плагина Eclipse — другая папка с различными опциями всплывающего меню в проводнике пакетов

Как создать различные параметры всплывающих меню при щелчке правой кнопкой мыши в Проводнике пакетов.

Например, у меня есть папка с другим именем в Package Explorer. Теперь, что я хочу, когда я щелкаю правой кнопкой мыши по папке, она показывает мне несколько всплывающих меню, а когда я щелкаю правой кнопкой мыши по другой папке, она показывает несколько разных всплывающих меню.

Это другая папка с другими параметрами всплывающего меню . И как я могу отличать эти папки друг от друга, чтобы установить разные параметры всплывающего меню.


person archit jain    schedule 13.04.2015    source источник


Ответы (1)


Вам нужно будет сделать 2 шага:

Во-первых: удалить существующие элементы во всплывающем меню, это можно сделать двумя способами: с помощью действий или преобразований равноденствия.

Действия: вы используете идентификатор в plugin.xml для фильтрации содержимого, которое вы не хотите отображать.

<extension point="org.eclipse.ui.activities">
   <category id="z.ex.commands.category"
         name="ReadMe Cat"/>
   <activity id="z.ex.commands.activity"
         name="ReadMe Act"/>
   <activityPatternBinding activityId="z.ex.commands.activity"
         isEqualityPattern="true"
         pattern="org.eclipse.ui.examples.readmetool/org.eclipse.ui.examples.readmetool.wizards.new.file"/>
   <categoryActivityBinding activityId="z.ex.commands.activity"
         categoryId="z.ex.commands.category">
</extension>

Представление «Реестр подключаемых модулей» можно использовать для поиска идентификаторов действий.

Я никогда не пробовал преобразование равноденствия, но вот ссылка: https://wiki.eclipse.org/Equinox_Transforms

Второй: добавить элементы во всплывающее меню:

<extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="popup:org.eclipse.jdt.ui.PackageExplorer">
         <command
               commandId="my id"
               label="my command label"
               style="push">
          <visibleWhen>
           <with variable="activeMenuSelection">
            <iterate
                 ifEmpty="false">
             <adapt type="org.eclipse.core.resources.IResource">
               <test property="org.eclipse.core.resources.name" value="*.java"     />
             </adapt>
            </iterate>
           </with>
         </visibleWhen>
       </command>
      </menuContribution>
</extension>

Вы должны изменить IResource на желаемую цель (я полагаю, что в вашем случае IFolder) и применить нужный фильтр к вашему имени файла вместо *.java

person flafoux    schedule 13.04.2015
comment
Это не сработало для меня. Я понял, что всякий раз, когда пользователь щелкает правой кнопкой мыши по любому файлу .java, он показывает всплывающее меню с меткой моей метки команды? - person archit jain; 13.04.2015
comment
Вам нужно запустить новый экземпляр eclipse, запустив eclipse + плагин, содержащий расширение меню, описанное выше. - person flafoux; 13.04.2015