gpt4 book ai didi

java - 如何在单独的 View 中创建新控制台

转载 作者:行者123 更新时间:2023-11-29 09:14:55 25 4
gpt4 key购买 nike

我使用以下代码创建了一个新控制台。

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 个与上面相同的新控制台。

但实际上我不想将我的新控制台页面之一添加到现有控制台。我想创建新的控制台 View ,它应该显示这些控制台消息。我怎样才能获得单独的控制台 View 而不是添加现有的控制台管理器。因为我想分离我自己的控制台 View 之一,而不是其他控制台。

是否可以创建新 View 并将一个控制台附加到该 View 。任何人都可以帮助我得到这个。

最佳答案

最近两天一直在为这个问题苦苦挣扎。无论如何,我自己找到了解决方案。仍然存在一些问题。
我想分享我得到的东西。

我刚刚创建了新 View 。该 View 类应该实现 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);

}

但我想,这里漏掉了什么。

实际上,我希望在该 View 类之外完成此操作。创建控制台后,我想以编程方式创建新 View 并添加如下所示,

// here that new view should be get and passed into createPage()
PageBookViewPage pageBook = targetConsole.createPage(IConsoleView);

关于java - 如何在单独的 View 中创建新控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10084935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com