Eclipse插件,自定义运行命令

时间:2016-06-27 16:23:56

标签: java eclipse plugins

因此,出于学习目的,我正在编写一个eclipse插件,该插件应该采用现有的启动配置,并使用一些新的VM属性重新运行它。

通过org.eclipse.ui.commands扩展点,我可以创建命令。

  <extension point="org.eclipse.ui.commands">
  <command
        defaultHandler="launchconfigurator.LaunchConfiguratorCommandHandler"
        id="launchconfigurator.toolbar.command"
        name="JCCRun">
  </command>
  </extension>

接下来,我将按钮添加到工具栏:

   <extension
     point="org.eclipse.ui.menus">
  <menuContribution
        locationURI="toolbar:org.eclipse.ui.main.toolbar">
  </menuContribution>
  <menuContribution
        locationURI="toolbar:org.eclipse.debug.ui.launchActionSet">
     <command
           commandId="launchconfigurator.toolbar.command"
           icon="favicon_1_-3.png"
           style="pulldown">
        <visibleWhen
              checkEnabled="true">
        </visibleWhen>
     </command>
  </menuContribution>

此时我的工具栏上有一个按钮,向我显示我的按钮,并有一个下拉菜单的箭头。但是当我点击菜单箭头时,没有任何反应......

我想拥有的是与eclipse运行或调试按钮完全相同的菜单...... 有谁知道我怎么能接受这个?

我想应该有一些我需要用plugin.xml做的事情让eclipse看到我的按钮作为一个运行按钮,但我不确定eclipse究竟需要什么... 也许有一些我可以看到的eclipse源代码?

我甚至实现了自己的代表和标签组,我不需要执行但是认为它会有所帮助......但是,遗憾的是,它没有...

提前谢谢你的回答, 愿力量与你同在

1 个答案:

答案 0 :(得分:2)

“运行”按钮使用旧样式org.eclipse.ui.actionSets扩展点定义:

   <action
           id="org.eclipse.debug.internal.ui.actions.RunDropDownAction"
           toolbarPath="org.eclipse.debug.ui.launchActionSet/debug"
           hoverIcon="$nl$/icons/full/etool16/run_exc.png"
           class="org.eclipse.debug.internal.ui.actions.RunToolbarAction"
           disabledIcon="$nl$/icons/full/dtool16/run_exc.png"
           icon="$nl$/icons/full/etool16/run_exc.png"
           helpContextId="run_action_context"
           label="%RunDropDownAction.label"
           style="pulldown">
     </action>

因此,创建“运行”下拉菜单的代码为org.eclipse.debug.internal.ui.actions.RunToolbarAction。这只是一个很小的课程:

public class RunToolbarAction extends AbstractLaunchToolbarAction {
  public RunToolbarAction() {
    super(IDebugUIConstants.ID_RUN_LAUNCH_GROUP);
  }
}

因此,这是使用更通用的类AbstractLaunchToolbarAction并指定要显示的启动组。你也许可以做类似的事情。