Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用EclipseJDT插件开发以编程方式调用菜单项_Java_Eclipse_Eclipse Plugin_Eclipse Jdt - Fatal编程技术网

Java 使用EclipseJDT插件开发以编程方式调用菜单项

Java 使用EclipseJDT插件开发以编程方式调用菜单项,java,eclipse,eclipse-plugin,eclipse-jdt,Java,Eclipse,Eclipse Plugin,Eclipse Jdt,我一直在想如何从我正在开发的插件中调用Eclipse菜单项。比如,为了这篇文章,我想在右键单击菜单中调用eclipse“Format”菜单项来格式化源代码,我如何通过调用该项来实现这一点(即,不只是模仿该菜单项的效果,而是实际调用它) 我不是在寻找如何格式化代码,只是简单地调用一个菜单项 我倾向于IWorkbench、Shell、工具栏、ToolItem等的API信息,但我真的不知道。我还没有在API或任何其他网站上找到关于这个主题的任何内容。有没有比编程更好的方法来实现这一点 Eclipse

我一直在想如何从我正在开发的插件中调用Eclipse菜单项。比如,为了这篇文章,我想在右键单击菜单中调用eclipse“Format”菜单项来格式化源代码,我如何通过调用该项来实现这一点(即,不只是模仿该菜单项的效果,而是实际调用它)

我不是在寻找如何格式化代码,只是简单地调用一个菜单项

我倾向于IWorkbench、Shell、工具栏、ToolItem等的API信息,但我真的不知道。我还没有在API或任何其他网站上找到关于这个主题的任何内容。有没有比编程更好的方法来实现这一点

Eclipse JDT-

编辑:


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

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


顺便说一句,如果您安装了Eclipse平台SDK插件(默认情况下可用),您实际上可以查看作为当前Eclipse产品一部分的任何插件的源代码(尝试
Ctrl+Shift+T
并键入
ISourceViewer
,例如,在那里您可以找到
格式
它,您可以使用
Ctrl+Shift+G
进行搜索),您可以将这些插件项目中的任何一个导入到您自己的工作区进行检查。

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


顺便说一句,如果您安装了Eclipse平台SDK插件(默认情况下可用),您实际上可以查看作为当前Eclipse产品一部分的任何插件的源代码(尝试
Ctrl+Shift+T
并键入
ISourceViewer
,例如,在那里您可以找到
格式
它,您可以使用
Ctrl+Shift+G
进行搜索),并且您可以将这些插件项目中的任何一个导入到您自己的工作区进行检查。

“有更好的方法吗?”是的,一点也不要这样做!GUI元素不应该以编程方式触发。相反,应该触发底层功能。我想,但是我该如何找到这个功能呢?提供了大量的功能,但我不确定如何访问这些信息。我不认为我应该重新编写经过尝试的代码,没错,显然是可用的。我知道,这不是你的错。Eclipse充满了可怕的紧密耦合代码。希望其中一些代码在E4中会更好“有更好的方法吗?”是的,一点也不要这样做!GUI元素不应该以编程方式触发。相反,应该触发底层功能。我想,但是我该如何找到这个功能呢?提供了大量的功能,但我不确定如何访问这些信息。我不认为我应该重新编写经过尝试的代码,没错,显然是可用的。我知道,这不是你的错。Eclipse充满了可怕的紧密耦合代码。希望其中一些代码在E4Awesome中会更好!这让我有了进步。我不知何故必须将多个命令绑定到一个项目上,试图弄清楚这一点,一旦解决,我会发布一个答案。感谢你为我指明了正确的方向!太棒了!太棒了!这让我有了收获。我不知何故不得不将多个命令绑定到一个项目上,试图在此时找出答案,一旦解决了,就会发布一个答案。谢谢你为我指明了正确的方向!太棒了!
String commandId = "org.eclipse.jdt.ui.edit.text.java.format";
IHandlerService handlerService = (IHandlerService)(IHandlerService ) PlatformUI.getWorkbench().getService(IHandlerService.class);
handlerService.executeCommand(commandId, null);