Dependency injection 3.x中的Eclipse开普勒依赖项注入
我在Eclipse3.7中有一个可用的插件,它具有Dependency injection 3.x中的Eclipse开普勒依赖项注入,dependency-injection,eclipse-plugin,e4,eclipse-kepler,Dependency Injection,Eclipse Plugin,E4,Eclipse Kepler,我在Eclipse3.7中有一个可用的插件,它具有视图和透视图 现在我尝试将其移动到EclipseKepler4.3,因此我遵循 我的所有视图都基于另一个插件中的模板视图。此TemplateView已转换为e4样式POJO视图。 我的插件扩展了这个TemplateView,并添加了包装器类(如教程中所述) 如果我以e3风格运行我的应用程序(意味着TemplateView正在扩展ViewPart),一切正常,并且添加了透视图。 但是当我将其更改为e4样式时(意味着TemplateView正在扩展P
视图
和透视图
现在我尝试将其移动到EclipseKepler4.3,因此我遵循
我的所有视图都基于另一个插件中的
模板视图
。此TemplateView
已转换为e4
样式POJO
视图。我的插件扩展了这个
TemplateView
,并添加了包装器类(如教程中所述)
如果我以e3
风格运行我的应用程序(意味着TemplateView
正在扩展ViewPart
),一切正常,并且添加了透视图。
但是当我将其更改为e4
样式时(意味着TemplateView
正在扩展POJO
,并且我在plugin.xml
中使用了包装器),eclipse不再显示透视图
及其视图
我的e3
视图不太有趣,因为它主要使用我的自定义api(这在这里只会混淆&它工作正常-因为它从e3
开始)
这是e4
包装类:
import org.eclipse.e4.tools.compat.parts.DIViewPart;
import lumo.views.contact.e3.PojoDetailView;
public class E4DetailView extends DIViewPart<PojoDetailView> {
public E4DetailView() {
super(PojoDetailView.class);
}
}
import org.eclipse.e4.tools.compat.parts.DIViewPart;
导入lumo.views.contact.e3.PojoDetailView;
公共类E4DetailView扩展了DIViewPart{
公共视图(){
super(PojoDetailView.class);
}
}
此问题是,但没有重复的解决方案:
使用带有@Inject
注释的构造函数,并将复合父项作为参数,然后创建内容,这一点很重要。像这样:
@Inject
public PojoDetailView(Composite parent) {
// either put creation code here or call the 3e styled function
createPartControl(parent);
}
我的错误是,我在createPartControl(复合父项)
上有一个普通构造函数和一个注释(这应该在DI
之后执行,但显然没有)