-->

Eclipse Kepler Dependency Injection in 3.x

2019-10-18 10:33发布

我已经在Eclipse 3.7与工作插件ViewsPerspective
现在,我尝试移动这个到Eclipse 4.3开普勒因此我按照从乔纳斯掌舵教程
我的观点,都是基于一个TemplateView在其他插件。 这TemplateView转化到e4风格POJO查看。
我的插件扩展了这个TemplateView ,并增加了包装类(如本教程中介绍)。

当且仅当我运行我的应用e3风格(指TemplateView正在扩大ViewPart ),一切都很好,和Perspective被添加。 但是,当我将其更改为e4风格(指TemplateView正在扩大POJO和我使用的包装在我plugin.xml )日食并不再dispay的PerspectiveViews

我的e3 View是不是真的很有趣,因为它大多采用我自定义的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);
    }
}

这个问题是这个问题的一部分 ,但没有欺骗

Answer 1:

解决方法:您使用与建筑工是很重要的@Inject Annotation和有Composite parent作为参数,然后创建内容。 像这样:

@Inject
public PojoDetailView(Composite parent) {
  // either put creation code here or call the 3e styled function
  createPartControl(parent);
}

我的错误是,我有一个普通的建筑工和Annotation @PostConstructcreatePartControl(Composite parent) (本应后执行DI ,但显然没有)



文章来源: Eclipse Kepler Dependency Injection in 3.x