Eclipse:如何关闭控制台视图?

时间:2011-08-31 00:53:09

标签: eclipse view console

我正在使用此代码打开控制台:

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中存在的确切代码,但它不会关闭控制台视图! (确切地说,在此文档中它只说:从控制台管理器中删除控制台

感谢。

1 个答案:

答案 0 :(得分:2)

您真的需要关闭整个控制台视图还是只关闭控制台?

如果你需要关闭整个视图,这是另一个故事,因为它可以在多个视角上显示。如this other question中所述,您需要查找视图的所有实例并隐藏每个实例,然后视图将完全处理。这个discussion thread甚至提供了一些代码来做到这一点。

如果您只需要关闭控制台页面而不是整个视图,removeConsoles方法应该按照您的指示执行,实际上它不会关闭视图,这不是错误。 This svn commit description可以帮助您在自己的控制台上实现关闭按钮。做出这样的改变相当简单:

  1. 添加新的IConsolePageParticipant,就像here
  2. 一样
  3. 修改 plugin.xml 以注册新类here