Eclipse RCP:getSite()上的NullPointer.setSelectionProvider(...)

时间:2014-05-07 12:54:44

标签: eclipse jface rcp e4

我已经完成了以下教程:

http://www.vogella.com/tutorials/EclipseRCP/article.html

http://www.vogella.com/tutorials/EclipseJFaceTable/article.html

http://www.vogella.com/tutorials/EclipseJFaceTableAdvanced/article.html

我想结合第一个教程中的JFace表查看器(第2和第3个教程的插件)和ToDo应用程序。在JFace表示例中,有一个从ViewPart扩展的View。在这个电话中:

getSite()。setSelectionProvider(view)

在createPartControl方法中很好并且有效。

但是当我在其他教程中做同样的事情时,它不起作用,我得到一个NullPointerException。第一篇文章创建了一个插件,然后使用功能和产品将其转换为Eclipse 4应用程序。因此,应用程序中的类不是从“Part”派生的。它们使用应用程序模型引用,仅使用注释@PostConstruct。

为什么我得到这个NullPointerException? 实际上,如何将SelectionProvider服务链接到Workbench?

我也试过使用PlatformUI.getWorkbench(),但它说工作台还不存在。

任何帮助都非常感谢。

感谢。

1 个答案:

答案 0 :(得分:2)

Eclipse 4(e4)应用程序与传统的Eclipse 3.x样式应用程序完全不同。

在e4应用程序中,您不能使用Eclipse 3.x应用程序中使用的很多东西 - 因此您需要检查您使用的示例所基于的样式。 e4应用程序可以访问3.x应用程序中没有的许多新功能。

在e4应用程序中,您注入ESelectionService以获取并设置当前选择。