将Eclipse的console插件加入到自己的RCP应用程序中

打开plugins.xml,

在Dependencies项中,点击add,加入org.eclipse.ui.console 依赖项。

在extensions项中点击add,添加org.eclipse.ui.console .consolefactories, 然后再该插件上点击右键,New-->consoleFactory ,在label想中填入控制台的名称,class中填入需要放置控制台工厂的 类名,如com.test.ui.ConsoleFactory,单击class会进入ConsoleFactory的代码编辑区,在代码编辑区中写入以 下代码。

Java代码



import  java.io.PrintStream;

import  org.eclipse.ui.console .ConsolePlugin;
import  org.eclipse.ui.console .IConsole;
import  org.eclipse.ui.console .IConsoleFactory;
import  org.eclipse.ui.console .IConsoleManager;
import  org.eclipse.ui.console .MessageConsole;
import  org.eclipse.ui.console .MessageConsoleStream;

public   class  ConsoleFactory  implements  IConsoleFactory  ... {
    
static  MessageConsole console   =   new  MessageConsole( " Transfer Infomation " ,
            
null );

    
public   void  openConsole()  ... {
        showConsole();
    }


    
public   static   void  showConsole()  ... {
        
if  (console   !=   null ... {
            IConsoleManager manager 
=  ConsolePlugin.getDefault()
                    .getConsoleManager();
            IConsole[] existing 
=  manager.getConsoles();
            
boolean  exists  =   false ;
            
for  ( int  i  =   0 ; i  <  existing.length; i ++ ... {
                
if  (console   ==  existing[i])
                    exists 
=   true ;
            }

            
if  ( ! exists)  ... {
                manager.addConsoles(
new  IConsole[]  ... console  } );
            }

            manager.showConsoleView(console );

            MessageConsoleStream stream 
=  console .newMessageStream();
            System.setOut(
new  PrintStream(stream));
        }

    }


    
public   static   void  closeConsole()  ... {
        IConsoleManager manager 
=  ConsolePlugin.getDefault()
                .getConsoleManager();
        
if  (console   !=   null ... {
            manager.removeConsoles(
new  IConsole[]  ... console  } );
        }

    }


    
public   static  MessageConsole getConsole()  ... {
        
return  console ;
    }

}

RCP 的Perspective.java中写入

Java代码



public   void  createInitialLayout(IPageLayout layout)  ... {
        String editArea 
=  layout.getEditorArea();
                                           ConsoleFactory cf 
=   new  ConsoleFactory();
        cf.openConsole();
        layout.setEditorAreaVisible(
false );
        layout.addView(IAppConstant.PIC_VIEW, IPageLayout.TOP, 
0.50f , editArea);
        
        IFolderLayout up
= layout.createFolder( " up " ,IPageLayout.BOTTOM, 0.5f ,editArea);
                                          up.addPlaceholder(IConsoleConstants.ID_CONSOLE_VIEW);
                                          up.addView(IConsoleConstants.ID_CONSOLE_VIEW);

    }

运行,哈哈,已经有console 了。

如果报错:

!MESSAGE Missing Constraint : Require-Bundle: org.eclipse.ui.console; bundle-version="3.4.0"
... ...

解决方法是在运行配置"Open Run Dialog ... "里找到相应的运行项, 然后在"Plug-ins "里先按下"Validate Plug-ins "按钮, 会提示你缺少Bundle项, 然后按下"Add Required Plug-ins "按钮, 这样就会把运行时需要的plug-ins给自动添加上去(在这个例子里是org.eclipse.ui.console 这个插件).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值