2012-04-10 60 views
2

我使用以下代碼創建了一個新控制檯。如何在獨立視圖中創建新控制檯

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

最近兩天一直在爲這個問題苦苦掙扎。無論如何找到解決方案,我自己。 還有一些問題。
我想分享我得到的東西。

我剛剛創建的新view.That視圖類應該實現 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); 
相關問題