我想基于透视切换在我的RCP应用程序中隐藏一些编辑器。我扩展了" PerspectiveAdapter"在重写的方法" perspectiveActivated"中使用IWorkbenchPage.hideEditor(editorReference)尝试隐藏编辑器。我没能成功。后来当我在eclipse源代码中检查hideEditor实现时,只有一行代码" E4Util.unsupported(" hideEditor");",从中我明白eclipse不支持隐藏工作台中的编辑器。
但是在Eclipse kepler release(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 - 编辑器引用删除。它必须是属于此页面的当前打开编辑器,并且不能为空。"
任何人都可以帮助我解决为什么kepler帮助文档与实际实现之间存在不匹配的原因。另外,如果有人指导上述问题,我将非常感激。
答案 0 :(得分:1)
Eclipse bug 374132中报告了这一点。 IWorkbenchPage
JavaDoc从未更新,但hideEditor
不起作用,似乎没有任何修复的前景。
如果您只针对Eclipse 4,那么错误评论确实提到了实现相同结果的可能方法。