Отсутствует связь между objectContribution и командой - PullRequest
1 голос
/ 06 мая 2011

При использовании objectContribution -элемента (который является частью точки расширения org.eclipse.ui.popupMenus) я часто (практически всегда) хочу делегировать какую-то команду вместо того, чтобы самому выполнять какое-либо действие (так как обычно у меня уже есть команда и обработчик).Я делаю это с помощью ICommandService и IHandlerService, но мне кажется, что должен быть способ достичь этого программным путем.Я мог бы использовать viewerContribution вместо objectContribution, но тогда я потерял бы простой способ показывать пункт меню только при выборе определенных типов объектов.В идеале я хотел бы использовать проверки включения, которые уже существуют для моих обработчиков, чтобы применить их к пункту меню, определенному objectContribution.

1 Ответ

4 голосов
/ 08 мая 2011

Хорошо, вот что мне не хватало: вместо использования точки расширения org.eclipse.ui.popupMenus мне пришлось использовать точку расширения org.eclipse.ui.menus с menuContribution, которая имеет locationURI-атрибут, указывающий на popup:org.eclipse.ui.popup.any?after=additions.Этот menuContribution может включать command -элемент (достижение цели привязки непосредственно к существующей команде), а этот visibleWhen -element´s *1011* -элемент может быть привязан к состоянию активации связанной командыобработчик с помощью checkEnabled -атрибута (достижение цели, состоящей в том, чтобы запись всплывающего меню была видимой только тогда, когда разрешение для обработчика команды выполнено).

Что плохо, так это то, что документация org.eclipse.ui.menus -точка расширения утверждает, что точка расширения org.eclipse.ui.popupMenus считается устаревшей, но в документации org.eclipse.ui.popupMenus этот факт не упоминается.

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