我正在使用此代码打开控制台:
MessageConsole console=new MessageConsole("Console", null);
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[]{console});
ConsolePlugin.getDefault().getConsoleManager().showConsoleView(console);
我的问题是: 我如何关闭控制台视图??
问题: 我期待一个不存在的ConsolePlugin.getDefault()。getConsoleManager()。closeConsoleView(...)。进一步检查,我发现:
void org.eclipse.ui.console.IConsoleManager.removeConsoles(IConsole[] consoles)
从控制台管理器中删除给定的控制台。 如果控制台在任何控制台视图中显示,相关页面将被删除并处理。
嗯,事实并非如此。这是http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fui%2Fconsole%2Factions%2FCloseConsoleAction.html中存在的确切代码,但它不会关闭控制台视图! (确切地说,在此文档中它只说:从控制台管理器中删除控制台)
感谢。
答案 0 :(得分:2)
您真的需要关闭整个控制台视图还是只关闭控制台?
如果你需要关闭整个视图,这是另一个故事,因为它可以在多个视角上显示。如this other question中所述,您需要查找视图的所有实例并隐藏每个实例,然后视图将完全处理。这个discussion thread甚至提供了一些代码来做到这一点。
如果您只需要关闭控制台页面而不是整个视图,removeConsoles方法应该按照您的指示执行,实际上它不会关闭视图,这不是错误。 This svn commit description可以帮助您在自己的控制台上实现关闭按钮。做出这样的改变相当简单: