`

将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 这个插件).

分享到:
评论

相关推荐

    eclipse-rcp开发培训PPT

    Eclipse RCP(Rich Client Platform)是Eclipse IDE提供的一种强大的客户端应用程序框架,它允许开发者构建功能丰富的、可扩展的桌面应用。本培训PPT将带你深入理解Eclipse RCP的核心概念和开发流程。 **一、...

    eclipse RCP入门示例介绍

    1. **创建 RCP 项目**:在 Eclipse 中创建一个新的 RCP 项目,这将是应用程序的基础框架。 2. **定义应用程序结构**:规划应用程序的各个部分,包括菜单、工具栏、视图等。 3. **实现业务逻辑**:编写处理应用...

    RCP程序设计教程打包

    它允许开发者利用Java语言和Eclipse插件系统创建功能丰富的、可扩展的、跨平台的应用程序。本教程将通过三个不同层次的例子,帮助你深入理解RCP程序设计。 1. **RCP基础** - **Eclipse RCP架构**:RCP基于插件模型...

    eclipse.rcp应用系统开发方法与实战源代码

    Eclipse RCP,全称Eclipse Rich Client Platform,是一种基于Java的开源框架,用于构建复杂的桌面应用程序。Eclipse RCP提供了丰富的用户界面组件和强大的插件机制,使得开发者能够快速构建功能完备、可扩展的应用...

    rcp研究总结

    本文将深入探讨RCP(Rich Client Platform)的研究总结,RCP是Eclipse框架的核心组成部分,用于构建强大的Java桌面应用程序。 首先,Eclipse作为一个开源的Java集成开发环境(IDE),由IBM贡献给社区,并逐渐成长为...

    RCP开发环境

    **插件架构**:Eclipse RCP应用程序由多个插件构成,每个插件都可以通过定义扩展点(extension point)来提供特定的功能。这种方式不仅增加了程序的灵活性,也便于维护和扩展。 #### 二、Eclipse RCP 开发流程 ###...

    eclipse深入浅出代码.zip

    在Eclipse RCP中,JAR文件可以作为插件的一部分,提供程序的功能或界面元素。 2. `artifacts.jar`:同样,这可能包含更多的类库或项目的元数据。在Eclipse插件开发中,artifact.jar通常包含插件的元数据信息,如...

    RCP初级教程(附图)

    - **架构理解**:将RCP视为Eclipse的骨架,用户可以在此基础上添加自己的功能和用户界面元素。 - **逻辑重心转移**:使用RCP可以让开发者更加专注于应用程序的逻辑部分,而不是界面设计。 - **界面元素继承**:可以...

    eclipse 文档合集(英文版)

    3. **透视图(Perspective)**:RCP中的透视图同样重要,可以定制用户界面来适应不同应用需求。 4. **模型(Model)**:数据和业务逻辑的载体,与视图分离,方便更新和共享。 5. **调度(Job)**:后台执行的任务,...

    Eclipse权威开发指南2.pdf

    10.1 在RCP上构建应用程序的 理由...... 235 10.1.1 给企业带来的好处..... 235 10.1.2 给软件开发者带来的 好处..... 236 10.1.3 给用户带来的好处..... 236 10.2 复习Eclipse体系结构...... 237 10.2.1 Eclipse...

    Eclipse权威开发指南3.pdf

    10.1 在RCP上构建应用程序的 理由...... 235 10.1.1 给企业带来的好处..... 235 10.1.2 给软件开发者带来的 好处..... 236 10.1.3 给用户带来的好处..... 236 10.2 复习Eclipse体系结构...... 237 ...

    Eclipse权威开发指南1.pdf

    10.1 在RCP上构建应用程序的 理由...... 235 10.1.1 给企业带来的好处..... 235 10.1.2 给软件开发者带来的 好处..... 236 10.1.3 给用户带来的好处..... 236 10.2 复习Eclipse体系结构...... 237 ...

    Eclipse简体中文教程.pdf

    7. **部署与发布**:讨论如何将开发的应用打包成可执行文件,发布到服务器,以及与服务器的集成。 8. **团队协作**:讲解如何通过Eclipse与其他开发者协同工作,包括使用版本控制系统进行代码同步,以及使用Mylyn等...

    eclipse 中文教程

    此外,还有针对特定行业的版本,如RCP(Rich Client Platform)用于构建桌面应用,PDE(Plug-in Development Environment)用于开发Eclipse插件。 1.4 跨语言、跨平台: Eclipse支持多种编程语言,包括Java、Python...

    Eclipse in Action

    6. **视图(Views)**:视图是Eclipse窗口中的特定区域,如Package Explorer显示项目结构,Problem视图显示错误和警告,Console视图显示程序输出。 7. **编辑器(Editors)**:编辑器是处理特定类型文件的组件,如...

    eclipse-inst-win64.zip

    之后,你可以创建新项目、导入现有项目、编写代码、运行和调试应用程序。Eclipse的界面由多个视图组成,如“Package Explorer”用于查看项目结构,“Outline”展示代码结构,“Console”显示运行结果,等等。 为了...

    第一个RAP例子程序(图示)

    RAP支持Eclipse插件开发的所有功能,使得开发者可以轻松地将桌面应用程序移植到Web上。 #### 二、RAP入门程序详解 ##### 1. 创建项目及入口类 - **创建项目**:在Eclipse中创建一个新的RAP项目。这通常涉及选择...

    nodejs调试

    在新建的项目中,打开`app.js`文件,这是你的主应用程序文件。在这里,你可以编写Node.js代码,例如创建一个简单的HTTP服务器: ```javascript const http = require('http'); const port = process.env.PORT || ...

Global site tag (gtag.js) - Google Analytics