繁体   English   中英

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

[英]How to call method in other plugin?

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

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

new ShowToolStoreCommandHandler().execute(null);

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

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

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

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

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

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

String commandId = .... the command id 

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

handlerService.executeCommand(commandId, null);

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM