Обработчики силы Eclipse, использующие activeWhen для переоценки

Я посмотрел на этот вопросEclipse заставляет обработчики переоценивать и ответ, который дал Пол Вебстер. Почему это не работает с помощьюactiveWhen элемент в обработчике? Это будет работать, только если я изменю следующий файл plug-in.xml, чтобы использоватьenabledWhen элемент. Моя конкретная команда больше не должна быть включена после запуска команды.


        
            
                
                    
                        
                    
                    
                       
                    
                
            
        

В конце выполнения моего обработчика я вызываю:

IEvaluationService service = (IEvaluationService) activeWorkbenchWindow.getService(IEvaluationService.class);
service.requestEvaluation("org.eclipse.jpt.jpa.core.isNotLatestSupportedVersion");

Обновить: ЯЯ провел еще несколько исследований, и я вижу регресс в 4.2.1 по сравнению с 3.8.1. Даже когда я переключаюсь на использованиеenabledWhen и используйте вызов requestEvaluation, я все еще вижу команду в быстром доступе. Я использую команду через быстрый доступ, затем сразу же снова использую быстрый доступ, и я вижу, что команда все еще там, и получаю NotEnabledException, если я нажму на нее. Это отлично работает с 3.8.1.

Эта конкретная команда не открывает диалоговое окно, но я добавил диалоговое окно подтверждения, и теперь моя команда удалена из быстрого доступа! И это даже без использования IValuationService.requestEvaluation. Смена фокуса заставляет обработчик переоцениваться?

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

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