我关注了这篇文章Get TreeViewer in RCP from another Plugin。当我将此代码添加到处理程序时,我得到了异常" java.lang.IllegalStateException: Workbench has not been created yet.
":
@Execute
public void execute() {
IWorkbench wb = PlatformUI.getWorkbench();
}
如果我在部件中执行此代码,则没有例外:
@PostConstruct
public void createComposite(Composite parent) {
IWorkbench wb = PlatformUI.getWorkbench();
}
我不知道为什么。你能帮助我吗?谢谢!
答案 0 :(得分:1)
在纯e4应用中,PlatformUI
(以及IWorkbench
,IWorkbenchWindow
,IWorkbenchPage
)根本不可用。 Eclipse的各个地方描述的许多技术仅适用于3.x兼容模式RCP。
您的部分中的电话很可能也会抛出异常,但只会被记录(或完全丢弃)。
在e4应用程序中,您使用findPart
的{{1}}方法查找其他部分。