[英]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.