工具栏图标不会自动更新

时间:2011-05-17 15:39:57

标签: java eclipse eclipse-plugin

我正在开发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更新的(仅当在调试视图中选择了进程时才激活),但我定义的命令是没有更新。如果我更改透视图然后切换回调试透视图,编辑器将更新命令图标。

如何更新命令图标?可以使用默认的eclipse图标吗?如果我将“icon”条目留空,则工具栏中将填充命令标签。

感谢

2 个答案:

答案 0 :(得分:0)

很抱歉,但我不清楚你想要达到什么目标。如果您想创建调试器,我建议重复使用现有框架,请参阅http://eclipse.org/articles/Article-Debugger/how-to.htmlhttp://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

这在Debug Events部分中描述。我相信,这很接近你所需要的。

答案 1 :(得分:0)

有两个地方可以控制命令的启用状态。

  1. 在org.eclipse.ui.handlers中,你可以 将你的处理程序与你的 命令并提供一个enabledWhen 核心表达。看到 http://wiki.eclipse.org/Command_Core_Expressionshttp://wiki.eclipse.org/Platform_Expression_Framework
  2. 当你的处理程序处于活动状态时,它就是 启用状态反映在 命令。大多数处理程序是子类 org.eclipse.core.commands.AbstractHandler。 当您的处理程序更新其状态时 运用 org.eclipse.core.commands.AbstractHandler.setBaseEnabled(boolean) 启用状态将被反映出来 在UI中