我的E3-RCP应用程序迁移到E4时遇到了问题。 我有3个部分。 2使用Lars Vogel的样本内容(http://www.vogella.com/tutorials/EclipseRCP/article.html#plugin_creatinge4“使用SWT电源小部件”)测试并与我的部分进行比较。
Long Story short(呃):不会调用应该创建用@PostConstruct标记的View内容的Method,但是SampleContent的@PostConstruct会被调用。有什么理由? 调用MyView的构造函数。
我的观点结构如下:
Many Imports
public class MyView1 implements IRefreshableView, ISomeListener {
a lot of fields, some are injected...
public MyView1() {
reference to the Activator-Class to get some item.
}
@PostConstruct
public void createControls(Composite parent) {
createViewToolbar();``
and much more Part Creation stuff that won´t be invoked...
}
much more methods
@Focus
public void setFocus() {
if (treeViewer.getTree().isVisible()) {
treeViewer.getTree().setFocus();
} else {
mainForm.setFocus();
}
}
}
new class definition in the same file.
END
很抱歉没有发布整个代码,就像1000行一样:/
我在Win7上使用Mars 4.5.1
答案 0 :(得分:2)
@PostConstruct
无法运行的一个原因是直接注入代码无法找到注入字段(或注入的构造函数)的对象。如果发生这种情况,注射器只会记录错误并停止。
错误记录在' .log'工作区中的文件' .metadata' 。目录