我使用以下代码创建了一个新的控制台。
this.console = new IOConsole(name, null);
IConsole[] consoles = new IConsole[1];
consoles[0] = this.console ;
ConsolePlugin.getDefault().getConsoleManager()
.addConsoles(consoles);
IOConsoleOutputStream consoleStream = this.console.newOutputStream();
consoleStream.write("Printing in console..");
我创建了3个与上面相同的新游戏机。
但实际上我不想将我的新控制台页面添加到现有控制台。 我想创建新的控制台视图,它应该显示这些控制台消息。 如何获取单独的控制台视图而不是添加现有的控制台管理器。 因为我想分离我自己的一个控制台视图,而不是其他控制台。
是否可以创建新视图并将一个控制台附加到该视图。 任何人都可以帮我解决这个问题。
答案 0 :(得分:0)
最近两天这个问题挣扎了。无论如何我自己找到了解决方案。
还有一些问题。
我想分享我得到的东西。
我刚刚创建了新视图。该视图类应该实现 IConsoleView (当然,扩展 IViewPart )。
在 createPatrControl()中,我添加了以下代码。
public void createPartControl(Composite parent) {
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getActivePage();
IViewReference ref = page.findViewReference(IConsoleConstants.ID_CONSOLE_VIEW);
IOConsole console = createConsole(); // here create new console
// this will ad console page to corresponding view
IPageBookViewPage pageBook = targetConsole.createPage(this);
try {
pageBook.init(new PageSite((IViewSite) ref.getView(true).getSite()));
} catch (PartInitException e) {
e.printStackTrace();
}
pageBook.createControl(parent);
}
但我想,有些东西在这里错过了。
实际上,我希望在视图类之外完成。 在创建控制台之后,我以编程方式创建新视图并添加如下所示
// here that new view should be get and passed into createPage()
PageBookViewPage pageBook = targetConsole.createPage(IConsoleView);