【发布时间】: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