在 eclipse 4.x 中替代 org.eclipse.jface.window.ApplicationWindow

Alternative for org.eclipse.jface.window.ApplicationWindow in eclipse 4.x

我正在将 eclipse IDE 产品从 362 迁移到 422。我有以下代码行抛出强制转换异常,因为 WorkbenchWindow 不再派生自 ApplicationWindow for eclipse 4.x。

ICoolBarManager coolBarMgr = ((ApplicationWindow) window).getCoolBarManager();

异常:java.lang.ClassCastException:org.eclipse.ui.internal.WorkbenchWindow 无法转换为 org.eclipse.jface.window.ApplicationWindow

作为一种变通方法,我可以对扩展 org.eclipse.ui.application.WorkbenchWindowAdvisor.

的 rcp 应用程序使用以下行

ICoolBarManager coolBarMgr = getWindowConfigurer().getActionBarConfigurer().getCoolBarManager();

但我必须使用 eclipse IDE(不是 rcp),它没有任何扩展 org.eclipse.ui.application.WorkbenchWindowAdvisor 的插件,所以上面的解决方法对我没有帮助。

您能否就替代解决方案提供任何建议,以在不使用 getWindowConfigurer() 且无需大量代码更改的情况下获取 ICoolBarManager? 或者有什么办法可以让我从另一个不扩展 org.eclipse.ui.application.WorkbenchWindowAdvisor?

的插件中使用 getWindowConfigurer()

如有任何帮助,我们将不胜感激。提前致谢。

WorkbenchWindow 有一个 getCoolBarManager2 方法 但是 WorkbenchWindow 是一个内部 class 所以这真的不应该被使用(你原来的方法也不应该)。我认为没有官方方法可以访问 ICoolBarManager.

注意 Eclipse 4.2.2 现在已经很老了,从那时起对 Eclipse 4 进行了大量修复。