如何访问兼容层IViewPart(e4)MPart

时间:2017-03-02 12:39:29

标签: eclipse-plugin eclipse-rcp e4

我正在将现有的Eclipse插件移植到e4。在非移植的IViewPart中,我想访问该视图的相应e4 MPart但无法让以下内容可靠地运行:

EPartService partService = (EPartService) PlatformUI.getWorkbench().getService(EPartService.class);
MPart part = partService.findPart(getSite().getId());

放在createPartControlComposite) 我有时会得到IllegalStateException(“应用程序没有活动窗口”)。

1 个答案:

答案 0 :(得分:1)

避免使用工作台中的零件服务,因为这只有在有活动窗口时才有效。

而是使用当前窗口的部件服务(可能不是活动的)。您可以使用以下方法在IViewPart中获取:

EPartService partService = getSite().getService(EPartService.class);

MPart part = partService.findPart(getSite().getId());