我在Eclipse 3.7中有一个带有Views
和Perspective
的工作插件
现在我尝试将其移至Eclipse Kepler 4.3,因此我遵循Tutorial from Jonas Helming
我的所有视图都基于另一个插件中的TemplateView
。此TemplateView
已转换为e4
样式POJO
视图
我的插件扩展了这个TemplateView
并添加了包装类(如教程中所述)。
我以e3
样式运行我的应用程序(意味着TemplateView
正在扩展ViewPart
)一切正常,Perspective
被添加。
但是,当我将其更改为e4
样式(意味着TemplateView
正在扩展POJO
并且我在我的plugin.xml
中使用包装器时)eclipse不再向Perspective
发送消息}及其Views
。
我的e3
View
并不是很有趣,因为它主要使用我的自定义api(这里只会混淆并且它正常工作 - 因为它始于e3
)< / p>
这是e4
Wrapper类:
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);
}
}
这个问题是part of this question,但没有欺骗
答案 0 :(得分:0)
解决方案:
您必须使用@Inject
Annotation
的构造函数并将Composite parent
作为参数,然后创建内容。像这样:
@Inject
public PojoDetailView(Composite parent) {
// either put creation code here or call the 3e styled function
createPartControl(parent);
}
我的错误是我在Annotation
上有一个简单的构造函数和一个@PostConstruct
createPartControl(Composite parent)
(这应该在DI
之后执行,但显然没有)