我已经完成了以下教程:
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(),但它说工作台还不存在。
任何帮助都非常感谢。
感谢。
答案 0 :(得分:2)
Eclipse 4(e4)应用程序与传统的Eclipse 3.x样式应用程序完全不同。
在e4应用程序中,您不能使用Eclipse 3.x应用程序中使用的很多东西 - 因此您需要检查您使用的示例所基于的样式。 e4应用程序可以访问3.x应用程序中没有的许多新功能。
在e4应用程序中,您注入ESelectionService
以获取并设置当前选择。