2012-04-10 10 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台の新しいコンソールを作成しました。

実際、私は新しいコンソールのページを既存のコンソールに追加したくありません。 新しいコンソールビューを作成して、これらのコンソールメッセージを表示する必要があります。 既存のコンソールマネージャを追加するのではなく、別のコンソールビューを取得するにはどうすればよいですか。 他のコンソールではなく、自分のコンソールビューの1つを切り離したいからです。

新しいビューを作成し、そのビューに1つのコンソールを接続することは可能ですか? 誰でも私にこれを手伝ってもらえますか?

答えて

0

この問題で最後の2日間苦労しました。それに何とか私のために解決策が見つかりました。 まだいくつかの問題があります。
私が得たものを分かち合いたい。

私はちょうど作成した新しい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); 
関連する問題