【问题标题】:Programmatically call menu item with Eclipse JDT, Plug-In Development使用 Eclipse JDT 以编程方式调用菜单项,插件开发
【发布时间】:2012-06-07 14:28:55
【问题描述】:

我一直试图弄清楚如何从我正在开发的插件中调用 Eclipse 菜单项。说,为了这篇文章,我想在右键菜单中调用eclipse“格式”菜单项来格式化源,我将如何通过调用该项目来执行此操作(即不仅仅是模仿该菜单项的效果,实际上叫它)?

我不是在寻找如何格式化代码,只是在寻找调用菜单项的想法。

我倾向于 IWorkbench、Shell、ToolBar、ToolItem 等上的 API 信息,但我真的不知道。我无法在 API 或其他任何在线网站上找到有关此主题的任何内容。有没有比编程更好的方法来做到这一点?

Eclipse JDT - http://help.eclipse.org/indigo/index.jsp?nav=%2F3

编辑:

String commandId = "org.eclipse.jdt.ui.edit.text.java.format";
IHandlerService handlerService = (IHandlerService)(IHandlerService ) PlatformUI.getWorkbench().getService(IHandlerService.class);
handlerService.executeCommand(commandId, null);

就这么简单。最难的部分是找到 commandId,正如 rlegendi 所提到的,它可以很容易地搜索到。这正是我想要的。它通过 ID 访问该插件,然后执行它。简单有效。谢谢大家!

【问题讨论】:

  • “有没有更好的方法” 是的,根本不要这样做!不应以编程方式触发 GUI 元素。相反,触发底层功能。
  • 我想通了,但我该如何寻找这个功能呢?提供了大量的功能,但我不知道如何访问这些信息。我觉得我不需要重新编写经过验证、真实且清晰可用的代码。
  • 我知道,这不是你的错。 Eclipse 充满了糟糕的紧耦合代码。希望其中一些在 E4 中会更好

标签: java eclipse eclipse-plugin eclipse-jdt


【解决方案1】:

我不确定,但您可能想了解的是Command/Delegate 框架。

顺便说一句,如果您安装了 Eclipse Platform SDK 插件(默认可用),您实际上可以查看属于您当前 Eclipse 产品一部分的任何插件的源代码(尝试@例如,987654322@ 并输入 ISourceViewer,在那里您可以找到 FORMAT,您可以使用 Ctrl+Shift+G 进行搜索,然后您可以将任何这些插件项目导入您自己的工作区进行检查。

【讨论】:

  • 太棒了!这让我在某个地方。我必须以某种方式将多个命令绑定到一个项目,目前试图弄清楚这一点,一旦解决就会发布答案。
  • 感谢您为我指明正确的方向!效果很好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多