如何在其他插件中调用方法?

时间:2019-07-04 08:52:10

标签: java eclipse-plugin

我正在开发一个名为mainPage的eclipse插件,并想在名为Terminal的插件中调用方法。

我已经将Terminal添加到Bundle-ClassPath和Require-Bundle中,然后像这样在mainPage中调用方法

new ShowToolStoreCommandHandler().execute(null);

此方法是打开一个窗口。 但是调用此方法时,我有一个java.lang.NullPointerException。

我发现在终端的激活器中获取终端的实例时,方法getDefault()返回null。

那么,如何调用此方法打开一个窗口?

1 个答案:

答案 0 :(得分:1)

在其他插件中调用方法没有什么特别的,只要它们被设计为以这种方式调用即可。

您提到的类可能是命令处理程序,因此希望在正确设置环境的情况下从命令处理程序服务中调用它。

您可以使用IHandlerService执行命令处理程序:

String commandId = .... the command id 

IHandlerService handlerService = PlatformUI.getWorkbench().getService(IHandlerService.class);

handlerService.executeCommand(commandId, null);

这假定命令处理程序不需要event参数并且不需要任何命令参数。如果这样做的话,通话将会更加复杂,并且需要更多的研究。

“ commandId”可能会在插件的plugin.xml中定义。