RCP 實現Eclipse Console

首先在Perspective中加上
 
  1. IFolderLayout folderLayout = layout.createFolder("folder", IPageLayout.BOTTOM,0.70f, editorArea);   
  2. folderLayout.addView(IConsoleConstants.ID_CONSOLE_VIEW);   

就可以顯示Console了,然後在創建它的控制者:

  1. package com.hoperun.citools.console; 
  2.  
  3. import java.io.PrintStream; 
  4.  
  5. import org.eclipse.ui.console.ConsolePlugin; 
  6. import org.eclipse.ui.console.IConsole; 
  7. import org.eclipse.ui.console.IConsoleManager; 
  8. import org.eclipse.ui.console.MessageConsole; 
  9. import org.eclipse.ui.console.MessageConsoleStream; 
  10.  
  11. public class ConsoleFactory { 
  12.  
  13.     public static MessageConsole console = new MessageConsole( 
  14.             "Netunit Console"null); 
  15.  
  16.     public void openConsole() { 
  17.         showConsole(); 
  18.     } 
  19.  
  20.     public static void showConsole() { 
  21.         if (console != null) { 
  22.             IConsoleManager manager = ConsolePlugin.getDefault() 
  23.                     .getConsoleManager(); 
  24.             IConsole[] existing = manager.getConsoles(); 
  25.             boolean exists = false
  26.             for (int i = 0; i < existing.length; i++) { 
  27.                 if (console == existing[i]) 
  28.                     exists = true
  29.             } 
  30.             if (!exists) { 
  31.                 manager.addConsoles(new IConsole[] { console }); 
  32.             } 
  33.             manager.showConsoleView(console); 
  34.  
  35.             MessageConsoleStream stream = console.newMessageStream(); 
  36.             System.setOut(new PrintStream(stream)); 
  37.         } 
  38.     } 
  39.  
  40.     public static void closeConsole() { 
  41.         IConsoleManager manager = ConsolePlugin.getDefault() 
  42.                 .getConsoleManager(); 
  43.         if (console != null) { 
  44.             manager.removeConsoles(new IConsole[] { console }); 
  45.         } 
  46.     } 
  47.  
  48.     public static MessageConsole getConsole() { 
  49.         return console; 
  50.     } 


然後在調用的地方加上一下代碼即可
 
  1. MessageConsoleStream  printer = ConsoleFactory.console.newMessageStream();   
  2. ConsoleFactory.showConsole();   
  3. printer.print("aaaaaaaaaa\n");   


不過這樣就不符合規範了,最好的方法就是寫個靜態方法帶String參數,傳進去的參數就是你想要輸出的東西,
不信就試一試,不過在寫代碼之前別忘了基本的,就是先得添加org.eclipse.ui.console擴展點,控制檯就輕而易舉的實現了,夠簡單吧

原文地址:http://358184482-qq-com.javaeye.com/blog/461886

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章