Всплывающее меню объекта conconbubution предоставляет элемент расширения видимости и включения. Если вы хотите скрыть структуру объекта для определенного класса, вы можете установить состояние объекта видимости следующим образом.

отаю в приложении RCP, и у меня есть представление, какие модели данных являются экземплярами IResources. Когда отображается всплывающее меню, я нахожу команды, добавленные другими плагинами, которые я хотел бы удалить.

Пример кода:

1 MenuManager menuManager = new MenuManager();
2 mm.setRemoveAllWhenShown(true);
3 Menu menu = menuManager.createContextMenu(this.treeViewer.getControl());  
4 this.treeViewer.getControl().setMenu(menu); 

5 getSite().registerContextMenu(menuManager, this.treeViewer);

Если я прокомментирую строку 5, контекстное меню не появится.

Можно ли использовать menu-contribut из plugin.xml и удалять вклады других плагинов?

Примечание. Мое всплывающее меню является декларативным и находится в plugin.xml.

заранее спасибо

Ответы на вопрос(3)

Решение Вопроса

Equinox», см.http://wiki.eclipse.org/Equinox_Transforms

Вы можете проверить комплекты с некоторыми примерами (см. Вики-страницу для получения дополнительной информации), я получил хороший опыт работы с XSLT-преобразователем, чтобы манипулировать некоторыми файлами plugin.xml, прежде чем они добавят свои расширения в платформу (единственная проблема заключается в чтобы узнать, какой пакет вносит раздражающую запись в контекстное меню, но вы можете использовать PluginSpy для определения «злодея» :-P.

HTH Том

 yeraycaballero21 янв. 2011 г., 10:33
Похоже, есть два способа отключить другие вкладки плагинов. Активности API и этот. Я собираюсь проверить это. Спасибо томс

ия видимости и включения. Если вы хотите скрыть структуру объекта для определенного класса, вы можете установить состояние объекта видимости следующим образом.

<visibility>
    <not>
      <objectClass
          name="{classname}">
      </objectClass>
    </not>
</visibility>

что было добавлено через plugin.xml. Для objectContributions вы должны использовать форму "contributing.plugin.id/action.id". Вот пример, который применяется к мастеру, но тот же шаблон может быть применен к определенному действию:

<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>

Реестр плагинов view можно использовать для поиска идентификаторов действий, хотя вам придется выполнить поиск.

Ваш ответ на вопрос