Плагин Eclipse: Как отобразить вклад в меню, только если активен персектив? - PullRequest
5 голосов
/ 24 ноября 2010

Я создал меню для плагина Eclipse.

Мне бы хотелось, чтобы меню отображалось только при активной перспективе плагина.

Ответы [ 3 ]

4 голосов
/ 26 ноября 2010

Вот что я нашел в проекте с открытым исходным кодом, и он работает для меня:

<extension
      point="org.eclipse.ui.menus">
   <menuContribution
         locationURI="menu:org.eclipse.ui.main.menu?after=additions">
      <menu
            id="menu1"
            label="Menu 1">
         <visibleWhen checkEnabled="false">
            <with variable="activeWorkbenchWindow.activePerspective">
                <equals value="myperspective"/>
            </with>
         </visibleWhen>
         <dynamic class="MenuPopulationClass"
                id="MenuPopulation"/>
      </menu>
   </menuContribution>
</extension>
1 голос
/ 25 ноября 2010

Я предлагаю использовать Command Framework.

этот учебник может помочь вам

Чтобы ограничить видимость ваших команд, вы должны проверить пар.5

0 голосов
/ 24 ноября 2010

Это краткое описание того, что вам нужно сделать.

Чтобы ограничить видимость меню верхнего уровня, создайте пустой ActionSet через диалог выбора точки расширения.

Затем добавьте выражение visibleWhen в пункт меню верхнего уровня, определенный в plugin.xml. Щелкните правой кнопкой мыши по пункту меню и выберите New -> visibleWhen. Щелкните правой кнопкой мыши элемент visibleWhen и выберите New -> with

Задать переменную - "activeContexts"

Щелкните правой кнопкой мыши элемент with и выберите New -> iterate. Выберите новый элемент iterate и измените его свойства, чтобы любой соответствующий элемент вызывал выражение true.

Щелкните правой кнопкой мыши элемент iterate и выберите New -> equals, затем измените свойство value.

значение = ваш новый набор действий

Наконец, добавьте пункт меню верхнего уровня в свой ActionSet.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...