我正在开发一个名为mainPage的eclipse插件,并想在名为Terminal的插件中调用方法。
我已经将Terminal添加到Bundle-ClassPath和Require-Bundle中,然后像这样在mainPage中调用方法
new ShowToolStoreCommandHandler().execute(null);
此方法是打开一个窗口。 但是调用此方法时,我有一个java.lang.NullPointerException。
我发现在终端的激活器中获取终端的实例时,方法getDefault()返回null。
那么,如何调用此方法打开一个窗口?
答案 0 :(得分:1)
在其他插件中调用方法没有什么特别的,只要它们被设计为以这种方式调用即可。
您提到的类可能是命令处理程序,因此希望在正确设置环境的情况下从命令处理程序服务中调用它。
您可以使用IHandlerService
执行命令处理程序:
String commandId = .... the command id
IHandlerService handlerService = PlatformUI.getWorkbench().getService(IHandlerService.class);
handlerService.executeCommand(commandId, null);
这假定命令处理程序不需要event
参数并且不需要任何命令参数。如果这样做的话,通话将会更加复杂,并且需要更多的研究。
“ commandId”可能会在插件的plugin.xml
中定义。