2013-04-23 76 views
3

我在xtext中開發了一個eclipse插件,我需要在控制檯中編寫一些消息。 要做到這一點,我已經看到了這個網站http://wiki.eclipse.org/FAQ_How_do_I_write_to_the_console_from_a_plug-in%3F然後我已經實現了這個代碼:在我的eclipse插件的控制檯中終止按鈕

private static MessageConsole findConsole(String name) { 

    if (ConsolePlugin.getDefault() == null) 
     return null; 
    ConsolePlugin plugin = ConsolePlugin.getDefault(); 
    IConsoleManager conMan = plugin.getConsoleManager(); 
    IConsole[] existing = conMan.getConsoles(); 
    for (int i = 0; i < existing.length; i++) 
     if (name.equals(existing[i].getName())) { 
      conMan.showConsoleView(existing[i]); 
      return (MessageConsole) existing[i]; 
     } 
    // no console found, so create a new one 
    MessageConsole myConsole = new MessageConsole(name, null); 
    conMan.addConsoles(new IConsole[] { myConsole }); 
    return myConsole; 
} 

public MessageConsoleStream getMessageStream() { 
    MessageConsole myConsole = findConsole("console"); 
    if (myConsole != null) { 

     IWorkbench wb = PlatformUI.getWorkbench(); 
     IWorkbenchWindow win = wb.getActiveWorkbenchWindow(); 
     IWorkbenchPage page = win.getActivePage(); 
     String id = IConsoleConstants.ID_CONSOLE_VIEW; 
     IConsoleView view; 
     try { 

      view = (IConsoleView) page.showView(id); 
      view.display(myConsole); 

      return myConsole.newMessageStream(); 
     } catch (PartInitException e) { 
      e.printStackTrace(); 
     } 
    } 
    return null; 
} 

我已經加入org.eclipse.ui.console到plugin.xml>依賴>需要的插件。

當我想打印一些消息: MessageConsoleStream out = getMessageStream(); out.println(...);

它正在工作。但我需要在我的控制檯中有一個「終止按鈕」,看起來這個代碼是不夠的。 我該怎麼做? 謝謝。

回答