2012-06-07 39 views
1

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

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

我倾向于在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访问该插件,然后执行它。简单而有效。感谢大家!

+0

“有更好的方法吗”是的,根本不要这样做! GUI元素不应该以编程方式触发。相反,触发底层功能。 –

+0

我想,但我该如何去寻找这个功能?有大量的功能提供,但我不知道如何访问该信息。我不认为我需要重新编写经过尝试,真实且清晰可用的代码。 – HJM

+0

我知道,这不是你的错。 Eclipse充满了可怕的紧密耦合的代码。希望其中一些在E4中会更好 –

回答

1

我不确定,但可能你想读的是Command/Delegate框架。如果你安装了Eclipse平台SDK插件(默认选项)

顺便说一句,你其实可以采取任何插件,是你当前的Eclipse产品的部分源代码,看看(尝试Ctrl+Shift+T和打字ISourceViewer例如,您可以找到FORMAT它,您可以使用Ctrl+Shift+G进行搜索),并且可以将任何这些插件项目导入到您自己的工作空间中进行检查。

+0

太棒了!这是让我在某个地方。我不知何故必须将多个命令绑定到一个项目,目前试图找出答案,一旦解决就会发布答案。 – HJM

+0

感谢您指点我正确的方向!工作出色! – HJM

+0

不客气,gl hf! – rlegendi

相关问题