Обновить состояние меню элемента Eclipse - PullRequest
7 голосов
/ 21 мая 2011

Я создал пункт меню в меню «Файл» как команду. Для этой команды есть обработчик, реализующий интерфейс IHandler. Этот обработчик содержит метод isEnabled. Я пытаюсь использовать этот метод для включения / отключения моего пункта меню, но этот метод вызывается только один раз, когда я нажимаю на меню «Файл». При щелчке второй, третий и т. Д. Метод isEnabled больше не вызывается, даже если раньше я менял состояние страницы (редакторы открытия / закрытия).

Что мне делать? Может быть, этот метод не предназначен для пунктов меню управления?

Ответы [ 2 ]

3 голосов
/ 23 мая 2011

Вы подклассы org.eclipse.core.commands.AbstractHandler? Вы должны использовать setBaseEnabled(boolean) для обновления состояния вашего обработчика (что будет обновлять вашу команду).

Это допустимо только для изменения включенного состояния в вашем обработчике, пока вы также запускаете HandlerEvent. Обычно проще позвонить по номеру setBaseEnabled(boolean), который запустит событие для вас.

2 голосов
/ 01 июня 2011

Если вы пытаетесь включить / отключить меню, чем вы должны использовать основные выражения.Я уже объяснил, как это сделать в этом ответе:

Меню и действия Eclipse RCP: настройка или код?

Запускается интересующая вас частьс:

Для активации / деактивации меню [...]

Я надеюсь, что это то, что вы ищете.

...