изменить обработчик идентификаторов команды по умолчанию - PullRequest
0 голосов
/ 08 июня 2011

Мне нужно изменить обработчик идентификатора команды по умолчанию.Например, идентификатор команды RestartWorkbenchHandler - org.eclipse.ui.file.restart.Поэтому, когда мы даем команду org.eclipse.ui.file.restart, она вызывает RestartWorkbenchHandler.Теперь я хотел запретить вызывать RestartWorkbenchHandler, вместо этого он должен вызывать мои собственные обработчики, когда я передаю org.eclipse.ui.file.restart.Как мне это сделать?

Спасибо, Бхану

1 Ответ

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

Этот обработчик предоставляется в качестве обработчика по умолчанию (приоритет == 0) для этой команды.AFAIK, однако, идентификатор org.eclipse.ui.file.restartWorkbench .

Вы можете переопределить его, предоставив другой обработчик с более высоким приоритетом.Вы можете использовать org.eclipse.ui.handlers:

  <handler class="org.example.YourResetHandler"
        commandId="org.eclipse.ui.file.restartWorkbench">
     <activeWhen>
        <with variable="activeWorkbenchWindow">
           <instanceof value="org.eclipse.ui.IWorkbenchWindow"/>
        </with>
     </activeWhen>
  </handler>

Или вы можете просто зарегистрировать другой обработчик в вашем ActionBarAdvisor при выполнении устаревших действий:

    IHandlerService srv = (IHandlerService) window.getService(IHandlerService.class);
    srv.activateHandler(IWorkbenchCommandConstants.FILE_RESTART, new YourRestartHandler());
...