我想基于透视切换在我的 RCP 应用程序中隐藏一些编辑器。我扩展了“PerspectiveAdapter”类,并尝试在重写方法“perspectiveActivated”中使用 IWorkbenchPage.hideEditor(editorReference) 隐藏编辑器。我没能成功。后来我检查eclipse源码中的hideEditor实现时,只有一行代码“E4Util.unsupported(“hideEditor”);”,由此我了解到eclipse不支持在工作台页面中隐藏编辑器。
但是在Eclipse kepler版本( http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fui%2FIWorkbenchPage.html )的帮助文档中,明确提到了hideEditor的功能描述:-
“void hideEditor(IEditorReference ref) 删除一个开放的编辑器,将其变成非参与编辑器。 非参与编辑器不会返回到打开的编辑器列表 (getEditorReferences()) 中,并且在编辑器区域中不可见。但是,它将继续参与保存生命周期,并且仍可能被某些工作台关闭事件关闭。
目前尚未定义(且不受支持)隐藏和显示多个堆栈中的编辑器的行为。
参数: ref - 要删除的编辑器引用。它必须是属于该页面的当前打开的编辑器,并且不能为空。”
任何人都可以帮我解决为什么开普勒帮助文档与实际实现之间不匹配。另外,如果有人指导解决上述问题,我将非常感激。
最佳答案
这是在 Eclipse bug 374132 中报告的。 IWorkbenchPage
JavaDoc 从未更新过,但 hideEditor
不起作用,而且似乎没有任何修复此问题的前景。
如果您仅针对 Eclipse 4,错误评论确实提到了实现相同结果的可能方法。
关于java - 隐藏编辑器不适用于工作台页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37697715/