`

eclipse rcp 基础知识 小结

    博客分类:
  • rcp
阅读更多
1. Workbench 工作台:为eclipse提供用户界面。
2. Workspace工作区:负责管理用户资源的插件。
3. Help帮助系统:具有与eclipse 平台本身相当的可扩展能力。
4. run-time 运行平台:它在启动时检查安装了哪些插件,并创建关于他们的注册表信息,插件在实际需要时才加载。
5. jdt java开发工具。
6. pde 插件开发工具。

Eclipse是各种插件的集合,但总体而言,插件开发有两种提供方式,一种是插件集构建的应用,拥有自己的程序入口,如Eclipse平台在Windows下通过点击eclipse.exe可以进入。另一种是以扩展的方式提供的插件集,它们通常不是完整的,也没有自己的程序入口,仅用以加入到已存在的平台中进行辅助性的开发,如GEF、EMF、CDT等。
Application通过扩展来定义,该扩展指定一个类(扩展点)作为主程序的入口。Application必须实现IplatformRunable接口,由此接口提供的run方法接管Eclipse平台的控制权,当Application结束时,Eclipse平台也会退出。

Products运行于Application之上,它主要提供典型应用程序的基本界面的实现,例如闪屏、windows图标等。一个Eclipse安装中可能存在多个Application和Product,但是在同一时刻只能运行一个Application和一个Product
Eclipse是各种插件的集合,但总体而言,插件开发有两种提供方式,一种是插件集构建的应用,拥有自己的程序入口,如Eclipse平台在Windows下通过点击eclipse.exe可以进入。另一种是以扩展的方式提供的插件集,它们通常不是完整的,也没有自己的程序入口,仅用以加入到已存在的平台中进行辅助性的开发,如GEF、EMF、CDT等。



RCP体系结构

RCP就是一个简化了的eclipse平台,它只包含5个插件:
runtime是核心类,
osgi是定义的一个标准,用来规范不同的插件,让他们可以相互协作。
剩下的三个插件Workbench、SWT、JFace是用来显示给用户界面的。 



填充RCP框架的"血肉"(内容:) ):

1.Workbench
每个RCP应用程序,对应一个Workbench(工作台),应用程序的主窗体.

2.Perspective
模块化单元,一个Workbench可包含多个Perspective(透视图),各个透视图之间是相互独立的单元.
主要功能:布局视图

3.View
视图:主要负责信息的显示.一个透视图可包含一或多个视图.
特点:
可灵活布局于特定透视图,
作为一个独立的显示模块, 可重用

4.Editor
编辑器:信息编辑区域.一个透视图对应一个编辑器.
特点:可以与视图进行及时交互;方便用户编辑数据.

几个不得不知道的文件:

● src文件夹下为运行插件时的一些类文件。

● MANIFEST.MF为插件清单文件,是插件与外界沟通的桥梁。





MANIFEST.MF文件是保存OSGi 的 Bundle文件。该文件也就是与其他平台的接口,通过该接口,外部平台可以使用该Eclipse的插件程序。关键的key值所表示的意义:

  Bundle-Name:插件的名称。

  Bundle-SymbolicName:为插件的唯一标识。


  Bundle-Activator:为主程序启动的类的全名。

  Require-Bundle:系统编译和运行的依赖项,可以加入其他所必需的插件。



● build.properties文件为构建RCP程序时所导入的类库设置。
build.properties是保存构建、打包和导出插件所需的所有信息的文件。




● plugin.xml是最重要的文件,该文件是插件的配置文件,集中管理插件内部的运行,在该文件中可以查找所有与该插件有关的信息。



plugin.xml文件是插件开发中最重要的文件,包含声明插件的扩展和扩展点配置。
id="application",表示该扩展点的标识。
point="org.eclipse.core.runtime.applications",表示扩展点的类型。这里表示该扩展点是系统扩展点,例如另一个扩展点类型“org.eclipse.ui.perspectives”为透视图扩展点。
<run>子项中定义了系统启动的class类,为com.fengmanfei.myrcp.Application,可以在源文件下找到这个.java源文件。
对于不同的扩展点有不同的配置元素,读者可以参考Eclipse的帮助文档。

3.RCP运行基本原理

A 插件类MyRCPPlugin
系统运行后首先在MANIFEST.MF文件中找到Bundle-Activator所对应的插件类.该类主要创建整个插件的对象,是插件的全局对象。可以通过该类的静态方法获得插件对象的引用,然后获得插件的各种信息,包括插件所对应的Bundle文件信息、log日志对象和工作台对象等。


B应用程序类Application
创建了插件类后,如何来创建主窗口呢?Eclipse运行的程序都是通过扩展点来配置的,初始化的界面程序也不例外,也是在配置的插件文件中配置好的。创建了插件类后,程序会自动查找plugin.xml文件,是否有对应的应用程序扩展点org.eclipse.core. runtime. applications。如果有,再找到该运行程序所对应的class,然后创建对象。

C工作台窗口类
该类创建时首先对工作台进行设置。是在preWindowOpen方法中实现的。该方法会在窗口打开之前调用。另外,也可以通过覆盖父类中的方法来进行窗口打开之前的配置工作和窗口关闭的善后处理工作。

D操作类
创建窗口时,会创建菜单栏和工具栏,此时创建的是ApplicationActionBarAdvisor对象。在该类中,可以添加各种操作项来创建菜单栏、工具栏和状态栏等。

E透视图类
最后,在创建工作台对象时,要指定一个默认的透视图对象。要实现一个透视图类,就要实现IPerspectiveFactory接口。


4.RCP优势

A.开发效率相对较快;
B.界面简洁不失美观;
C.运行速度快;
D.跨平台;
E.与J2EE完整结合;
F.基于Internet布署,维护更加方便;

在我们的RCP Project中的MyRcpProjectWorkbenchAdvisor类中的public void initialize(IWorkbenchConfigurer configurer)方法中加入   WorkbenchPlugin.DEBUG = true 就可以打印出我们想要的StackTrace了。
具体测试代码如下。

public void initialize(IWorkbenchConfigurer configurer){

  WorkbenchPlugin.DEBUG = true;
  configurer.setSaveAndRestore(true);
   // Test code
   String s = null;
   s.length();
  //

}
这样编写在开发阶段进行调试。
分享到:
评论

相关推荐

    Eclipse RCP.pdf清晰版

    在深入学习Eclipse RCP之前,建议掌握以下基础知识: 1. **Java基础**: Java是Eclipse RCP的主要编程语言。 2. **Eclipse使用经验**: 了解如何使用Eclipse进行基本的开发工作。 3. **SWT/JFace开发基础(可选)**: ...

    Eclipse RCP 插件开发指南

    本指南旨在帮助开发者从零开始掌握Eclipse RCP插件开发的基础知识及实战技巧。 ##### Introduction Eclipse RCP 是一个灵活的平台,它提供了构建桌面应用程序所需的所有组件和服务。通过使用Eclipse RCP,开发者...

    eclipse rcp入门

    本文将详细介绍Eclipse RCP的基本概念、开发流程以及所需的基础知识。 #### 二、Eclipse 简介 Eclipse 是一款由IBM发起并捐赠给开源社区的集成开发环境(IDE)。随着时间的发展,Eclipse 已经不仅仅是一个Java IDE,...

    eclipse rcp 简要入门手册

    - **小型化:** 相比于完整的 Eclipse IDE,Eclipse RCP 的整体体积更小,更适合开发轻量级的客户端应用。 - **可扩展性:** 支持通过插件机制进行功能扩展,使得应用可以随时间逐步完善。 - **Java 基础:** ...

    eclipse RCP开发一个简单的MYSQL客户端工具介绍

    总结起来,使用Eclipse RCP开发一个简单的MySQL客户端工具,需要掌握以下知识点: 1. Eclipse RCP插件开发基础,包括组件化和API通信。 2. SWT库的使用,创建用户界面和控件。 3. JDBC API,用于与MySQL数据库的连接...

    Eclipse RCP开发指南

    ### Eclipse RCP开发指南知识点详解 #### 一、教程概览 本教程旨在提供一个全面且实践导向的方法来教授如何开发基于Eclipse Rich Client Platform (RCP)的应用程序。作者为Frank Gerhardt博士与Michael Scharf,两...

    eclipse插件开发 rcp入门开发详细讲解一

    本文将详细介绍如何使用Eclipse RCP进行插件开发的基础流程,包括项目的创建、配置以及不同运行模式的理解。 #### 二、创建Eclipse RCP项目 ##### 1. 创建插件项目 - **步骤一**:打开Eclipse IDE,选择“File” ...

    Eclipse RCP开发

    ### Eclipse RCP开发知识点详解 #### 1. Eclipse RCP概览 - **Eclipse RCP**(Rich Client Platform)是一种用于构建复杂桌面应用程序的框架,它基于Java语言,利用了Eclipse平台的强大功能。 - **特点**:高度可...

    rcp学习好资料

    1. **Eclipse RCP基础**:了解RCP的概念、架构以及如何设置开发环境。 2. **用户界面设计**:掌握创建菜单、工具栏、对话框以及视图和透视图的方法,以构建丰富的用户交互体验。 3. **2D绘图**:学习如何利用Eclipse...

    RCP开发环境

    **总结**:本文介绍了Eclipse RCP插件开发的基础知识,涵盖了环境搭建、项目创建、关键文件配置及运行配置等内容。理解这些基础可以帮助开发者快速上手RCP开发,并构建出功能丰富且易于维护的应用程序。

    RCP开发压缩包

    **Eclipse RCP基础知识** 1. **插件系统**:Eclipse RCP的核心是其插件系统,它允许将应用程序分解为一系列可独立开发、测试和部署的组件。每个插件都包含特定的功能,并通过服务定位机制与其他插件进行交互。 2. ...

    eclipse中texteditor的插件

    在Eclipse这个强大的集成开发环境中,TextEditor是一个基础且重要的组件,它提供了基本的文本编辑功能,用于编写各种编程语言的源代码。Eclipse作为一个开放源码的平台,允许开发者通过扩展机制来定制和增强其功能,...

    RCP程序设计.pdf

    ### RCP程序设计知识点概述 #### 一、RCP(Rich Client Platform)简介 - **概念**: 富客户端(RCP)技术早在上世纪90年代初就已经被提及,当时主要应用于利用VB、Delphi等工具开发桌面应用程序。随着桌面应用程序...

    通过例子学习Eclipse开发

    通过上述内容的学习,我们可以了解到Eclipse RCP 开发涉及到了很多方面的内容,从基础的用户界面组件到复杂的命令系统、视图、编辑器、对话框等。掌握了这些知识后,开发者就可以灵活地构建出各种复杂的应用程序。...

    Eclipse 核心编程--插件、界面与Web开发

    书中不仅包括适合Java初学者阅读的编译和运行Java应用程序,在Eclipse中配置环境变量、构建路径,使用Junit编写测试代码等Eclipse开发的基础知识;还包括适合Eclipse具体项目开发人员阅读的开发Java图形应用程序,...

    RCP中文入门教程.pdf

    ### RCP中文入门教程知识点详解 #### 一、RCP概念与定义 RCP(Rich Client Platform)是一种基于Eclipse框架构建的富客户端应用程序开发平台。RCP应用本质上是一个能够独立于Eclipse IDE运行的Eclipse插件。通过...

    rcp menubarpath和toolbarpath的参考值

    ### Eclipse RCP MenubarPath 和 ToolbarPath 参考值详解 #### 一、MenubarPath 概述 在 Eclipse RCP(Rich Client Platform)...对于那些希望深入了解 Eclipse RCP 开发模式的人来说,这些知识点是不可或缺的基础。

    Eclipse平台java开发使用介绍

    "Eclipse平台培训.ppt"可能是一个Eclipse使用培训的演示文稿,涵盖了Eclipse的基础知识,如创建项目、编写代码、构建和运行应用,以及更高级的主题,如插件开发。这样的资源对于初学者和提升现有开发者技能都非常有...

    RCP中文入门教程

    RCP(Rich Client Platform)是Eclipse框架的一部分,它提供了一个构建桌面应用程序的基础,使得开发者可以创建出具有丰富用户界面的应用,而这些应用不仅限于在Eclipse集成开发环境中运行。RCP应用由一系列插件组成...

Global site tag (gtag.js) - Google Analytics