значки на панели инструментов не обновляются автоматически - PullRequest
1 голос
/ 17 мая 2011

Я разрабатываю продукт Eclipse.Я определил две разные точки зрения: редактировать и отлаживать.На панели инструментов перспективы отладки я разместил набор кнопок для управления процессом отладки (например, шаг за шагом, шаг и т. Д.).Я использовал команду eclipse для реализации логики.Ниже приведен фрагмент файла pluxin.xml, в котором я объявляю команду панели инструментов.

     <toolbar
           id=".."
           label="Debug navigation command">
        ....
        <command
              commandId="org.eclipse.debug.ui.commands.Terminate"
              disabledIcon="icons/16x16/stop_disabled.ico"
              icon="icons/16x16/stop.ico"
              label="Terminate"
              style="push"
              tooltip="Terminate">
           <visibleWhen
                 checkEnabled="false">
              <with
                    variable="activeWorkbenchWindow.activePerspective">
                 <equals
                       value="org.xvr.xvrengine.perspective.debug">
                 </equals>
              </with>
           </visibleWhen>
        </command>
     </toolbar>

Проблема заключается в том, что в то время как все другие значки, связанные с командой org.eclipse.debug.ui.commands.Terminate, обновляютсяeclipse (активен, только когда процесс выбран в представлении отладки), команда, которую я определяю, не обновляется.Редактор обновляет значок команды, если я изменяю перспективу, а затем переключаюсь обратно на перспективу отладки.

Как я могу обновить значок команды?можно использовать значок затмения по умолчанию?если я оставлю запись "значок" пустой, панель инструментов заполнится меткой команды.

спасибо

Ответы [ 2 ]

0 голосов
/ 18 мая 2011

Есть 2 места, где вы можете контролировать состояние вашей команды.

  1. в org.eclipse.ui.handlers, вы можете связать ваш обработчик с вашим Команда и предоставить включен, когда основное выражение. Увидеть http://wiki.eclipse.org/Command_Core_Expressions а также http://wiki.eclipse.org/Platform_Expression_Framework
  2. Пока ваш обработчик активен, его включенное состояние отражается в команда. Большинство обработчиков подкласса org.eclipse.core.commands.AbstractHandler. Как ваш обработчик обновляет свое состояние с помощью org.eclipse.core.commands.AbstractHandler.setBaseEnabled(boolean) это включенное состояние будет отражено в пользовательском интерфейсе

.

0 голосов
/ 17 мая 2011

Извините, но мне не ясно, чего вы хотите достичь. Если вы хотите создать отладчик, я предлагаю использовать для этого существующую платформу, см. http://eclipse.org/articles/Article-Debugger/how-to.html и http://eclipse.org/articles/Article-Launch-Framework/launch.html

В этом случае вы автоматически получаете значки платформ отладки, которые соответственно обновляются.

В противном случае вы можете обратиться к http://blog.eclipse -tips.com / 2009/02 / commands-part-5-authentication-in-rcp.html за идеями динамической обработки команд.

Обновление: Альтернативный ответ: Вы можете использовать fireEvent(new DebugEvent(this, DebugEvent.RESUME, detail));, как описано в конце следующей статьи Eclipse Corner: http://eclipse.org/articles/Article-Debugger/how-to.html

Это описано в части «События отладки». Я считаю, это близко к тому, что вам нужно.

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