eclipse 插件控制台输出

来源:互联网 发布:成都数控冲床编程招聘 编辑:程序博客网 时间:2024/05/17 06:24

进行Eclipse插件开发时,有时需要为插件开发自己的控制台,以便在必要输出提示信息,本文介绍进行Eclipse插件开发时,如何实现自己的控制台。

1. 扩展控制台扩展点。

对org.eclipse.ui.console.consoleFactories扩展点进行扩展,并填写必要的信息,比如label,class等。如下图。


2. 实现ConsoleFactory类。需要加给工程加入org.eclipse.ui.console_3.4.0.v20090513.jar。版本可以不同。

[java] view plaincopyprint?
  1. package project;  
  2.   
  3. import org.eclipse.ui.console.ConsolePlugin;  
  4. import org.eclipse.ui.console.IConsole;  
  5. import org.eclipse.ui.console.IConsoleFactory;  
  6. import org.eclipse.ui.console.IConsoleManager;  
  7. import org.eclipse.ui.console.MessageConsole;  
  8.   
  9. public class ConsoleFactory implements IConsoleFactory {  
  10.   
  11.     private static MessageConsole console = new MessageConsole(""null);  
  12.     static boolean exists = false;  
  13.   
  14.     /** 
  15.      * 描述:打开控制台 
  16.      * */  
  17.     public void openConsole() {  
  18.         showConsole();  
  19.     }  
  20.   
  21.     /** */  
  22.     /** 
  23.      * 描述:显示控制台 
  24.      * */  
  25.     private static void showConsole() {  
  26.         if (console != null) {  
  27.             // 得到默认控制台管理器  
  28.             IConsoleManager manager = ConsolePlugin.getDefault()  
  29.                     .getConsoleManager();  
  30.   
  31.             // 得到所有的控制台实例  
  32.             IConsole[] existing = manager.getConsoles();  
  33.             exists = false;  
  34.             // 新创建的MessageConsole实例不存在就加入到控制台管理器,并显示出来  
  35.             for (int i = 0; i < existing.length; i++) {  
  36.                 if (console == existing[i])  
  37.                     exists = true;  
  38.             }  
  39.             if (!exists) {  
  40.                 manager.addConsoles(new IConsole[] { console });  
  41.             }  
  42.   
  43.             // console.activate();  
  44.   
  45.         }  
  46.     }  
  47.   
  48.     /** */  
  49.     /** 
  50.      * 描述:关闭控制台 
  51.      * */  
  52.     public static void closeConsole() {  
  53.         IConsoleManager manager = ConsolePlugin.getDefault()  
  54.                 .getConsoleManager();  
  55.         if (console != null) {  
  56.             manager.removeConsoles(new IConsole[] { console });  
  57.         }  
  58.     }  
  59.   
  60.     /** 
  61.      * 获取控制台 
  62.      *  
  63.      * @return 
  64.      */  
  65.     public static MessageConsole getConsole() {  
  66.   
  67.         showConsole();  
  68.   
  69.         return console;  
  70.     }  
  71. }  

3.实现向控制台输出信息。

[java] view plaincopyprint?
  1. /** 
  2.  * 向控制台打印一条信息,并激活控制台。 
  3.  *  
  4.  * @param message 
  5.  * @param activate 
  6.  *            是否激活控制台 
  7.  */  
  8. public static void printToConsole(String message, boolean activate) {  
  9.     MessageConsoleStream printer = ConsoleFactory.getConsole()  
  10.             .newMessageStream();  
  11.     printer.setActivateOnWrite(activate);  
  12.     printer.println("提示:" + message );  
  13. }  
当需要向控制台输出信息时,只需要调用printToConsole()函数即可。
原创粉丝点击