Java Eclipse4RCP部件的空窗口空间在单独的插件项目中提取为片段

Java Eclipse4RCP部件的空窗口空间在单独的插件项目中提取为片段,java,eclipse,eclipse-rcp,e4,Java,Eclipse,Eclipse Rcp,E4,通过扩展演示内容的PartSashContainer以显示第二部分,我成功地构建了我的第一个Eclipse4RCP应用程序 现在我尝试将第二部分移动到一个单独的插件包中,并将其作为片段导入。这样,新应用程序既不会冻结也不会引发任何显式异常。它还将窗口的空间划分为均匀的部分,并显示主要部分。不幸的是,窗口中用来显示提取片段中第二部分内容的部分完全是空的。 调用这两个部分的默认构造函数。在这两个部分中都可以找到“@PostConstruct public void createComposite(C

通过扩展演示内容的PartSashContainer以显示第二部分,我成功地构建了我的第一个Eclipse4RCP应用程序

现在我尝试将第二部分移动到一个单独的插件包中,并将其作为片段导入。这样,新应用程序既不会冻结也不会引发任何显式异常。它还将窗口的空间划分为均匀的部分,并显示主要部分。不幸的是,窗口中用来显示提取片段中第二部分内容的部分完全是空的。 调用这两个部分的默认构造函数。在这两个部分中都可以找到“@PostConstruct public void createComposite(Composite parent)”,但是只对主要部分调用,而不对第二部分调用。 我已将所有部分设置为可见,并且渲染时没有任何差异。 由于缺少错误和其他奇怪的行为,我确信已在两个*.e4xmi文件中设置了所有必需的ID

在合并方法和提取方法之间可能存在差异的任何想法


我将这两个项目作为zip文件上载到

您可能会遇到以下问题:


要解决这个问题,您需要将
javax.annotation
添加为包依赖项,而不是插件依赖项添加到包含片段的插件的MANIFEST.MF中。

您指的是fragment.e4xmi还是Eclipse中称为“片段”的其他各种东西之一?是的,我指的是带有fragment.e4xmi的片段。据我所知,我似乎已经正确设置了所有元素ID和功能名称-应用程序至少既没有冻结也没有显示任何显式异常。这应该可以工作,我有很多片段是这样工作的。声明的部分是否设置了“可见”和“待渲染”未设置?我已在fragment.e4xmi中将各自的部分设置为既不“可见”也不“待渲染”。但是,关联的处理程序将调用myPart.setVisible(true)和myPart.setToBerndered(true)。从我的理解来看,这应该是一样的吗?我只是用unset/set和mutualset两个复选框进行了尝试,但我的按钮在两种配置中都没有显示。我的按钮都有可见的set,并且要呈现unset。查看我正在使用的代码
EPartService.showPart(id,PartState.ACTIVATE)