学习Eclipse RCP应用开发,对其中一些相关的概念需要了解。

让我们在讲解概念前先思考两个问题。

问题一、什么是Eclipse

大部分同学会回答eclipse是IBM公司开发的java集成开发环境(IDE)。

问题二、Eclipse体系结构是什么?

这个问题可能有点难回答。既然是一个开发环境,又能有什么体系结构?最多就是开发环境和一些插件而已。

按照上面的想法,就太小看Eclipse了,其实Eclipse由Eclipse平台、JDT、PDE以及其它插件这几个部分组成。以下将对这几个概念逐一讲解。

Eclipse平台:简单的说Eclipse平台就是一个通用的基础架构平台,从结构可以分为核心core与用户界面UI两层。更细化一些,Eclipse由以下几个部分组成。

(1)平台核心(platform kernel):与用户界面无关的基础结构,包括平台运行时(platform runtime),插件管理,工作空间(workspace)和资源管理以及版本和配置管理。

(2)工作台(workbench):工作台指的是用户工作界面。主要包括VIEW、Editor与Perspectives。

(3)工作区(workspace):由一些配置数据即元数据和用户项目组成

(4)团队组件(tram component)。

(5)说明组件(help)。

根据eclipse白皮书的说法,除 platform runtime外,所有的功能都是由插件组成。只不过eclipse平台自带的是核心插件,用户开发的是新的功能插件。

JDT:JDT(Java Development Tooling)也就是我们理解的eclipse平台下的java开发工具。

PDE:PDE(Plug-in Development Environment)插件开发环境,PDE提供了一系列的工具,可以用于建立、开发、测试、调试、发布Eclipse的插件。如下图。

 

SWT-JFACE

通过以上的介绍,相信对eclipse体系结构,有了简单的了解。但说到eclipse的开发,还要引申出两个工具箱,SWT,JFace

前面说过eclipse平台的UI界面是围绕着workbench呈现给用户,那怎样基于workbench开发呢?workbench实际是通过swt,Jface来开发的,也就是说workbench基于SWT和JFACE两个工具箱,用户可以通过使用SWT,JFACE扩展和开发插件。

SWT:SWT(Standard Widget Toolkit, 标准图形工具箱)是用java开发的GUI工具箱,即控件集合,SWT可以对操作系统进行判断,操作系统窗口平台有的控件,SWT会直接使用如Button,Text等,操作系统没有的控件SWT则会去主动绘制。

JFACE:JFACE是一套基于SWT的工具箱,对SWT进行了再次包装。

因为Eclipse的开发都在workbench上,那再理清一下workbench的概念,workbench基于SWT,JFACE,也就是workbench是由SWT与JFACE开发出来的,workbench主要包括,View, Editor, Perspectives。

Editor: 编辑器允许用户打开、编辑和保存对象。

View:辅助编辑器,提供信息。

Perspectives:组合Editor与View并布局在屏幕上,每个透视图有自己的视图和编辑器。工作台可以有多个独立的透视图,但只能有一个是激活的,可以通过切换查看不同透视图。

另外再解释几个概念:

RCP:RCP(Rich Client Platform)富客户端平台,指的是一种C/S应用软件的公用基础结构实现,Rich的概念是相对与B/S应用软件的浏览器而言。因此基于Eclipse RCP的应用开发,通俗一点说就是基于eclipse体系的富客户端平台开发,更通俗一点说就是开发一个和Eclipse长的很像的客户端。

OGSI:OSGI(Open Service Gateway Initiative)一个标准,基于此标准实现的框架可以轻松的构建模块化,动态化的系统。

最典型的基于OSGI标准的框架就属Equinox(org.eclipse.osgi),从包名就可以看出Equinox是eclipse的OSGI框架。

SWING与AWT:简单一点说,这两个东西就是SUN公司与IBM公司的SWT与JFace对抗的图形工具箱,至于优缺点比较网上对比的口水文章太多,这里就不做评价。

Eclipse RCP应用开发(概念)的更多相关文章

  1. Eclipse RCP学习资料

    1.拥抱Eclipse RCP http://www.blogjava.net/youxia/category/17374.html 2.RCP工程下面自动生成了如下文件:Application.ja ...

  2. Eclipse RCP:多平台部署

    1 问题 在使用Eclipse RCP IDE进行开发时,它自带的PDE(插件开发环境)工具仅能够导出相同平台的部署包,比如win32的仅能导出win32的,linux64仅能够导出linux64的. ...

  3. Eclipse中Python开发环境搭建

    Eclipse中Python开发环境搭建  目 录  1.背景介绍 2.Python安装 3.插件PyDev安装 4.测试Demo演示 一.背景介绍 Eclipse是一款基于Java的可扩展开发平台. ...

  4. eclipse配置c开发环境

    // */ // ]]> eclipse配置c开发环境 1. eclipse配置c开发环境 1.1. 缘起 1.2. cygwin 1.3. eclipse 1.4. 配置 1 eclipse配 ...

  5. 可视化(番外篇)——在Eclipse RCP中玩转OpenGL

    最近在看有关Eclipse RCP方面的东西,鉴于Gephi是使用opengl作为绘图引擎,所以,萌生了在Eclipse RCP下添加画布,使用opengl绘图的想法,网上有博文详细介绍这方面的内容, ...

  6. 极其简单的搭建eclipse的android开发环境

    这篇博客是关于如何搭建eclipse的android开发环境, 与网上的其他博客不同,我的方法比他们简单的多,所 以推荐给大家. 搭建eclipse的android开发环境步骤: 1.配置JDK(Ja ...

  7. mac10.9下eclipse的storm开发环境搭建

    --------------------------------------- 博文作者:迦壹 博客地址:http://idoall.org/home.php?mod=space&uid=1& ...

  8. Eclipse配置Flex开发环境(转)

    Eclipse配置Flex开发环境 开发环境:Eclipse3.2.Flex Builder31.下载安装Flex Builder3,下载地址:http://subject.csdn.net/adob ...

  9. Ubuntu环境下eclipse的hadoop开发

    在安装好hadoop伪分布式后,开始搭建eclipse的hadoop开发环境 我的版本信息如下: Ubuntu 版本 12.10 Hadoop版本 1.2.1 Java版本  1.6.0_31(命令j ...

随机推荐

  1. 浅谈Java中final,finalized,finally

    final: final可以让你控制你的成员.方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也是学习Java时必须要知道和掌握的关键字之一. fi ...

  2. [Contest20180321]nonintersect

    $\dfrac 2\pi$是个引人注目的数字,先来看看它到底是什么东西 假如有一条直线,它和题目所给的某条长度为$d$的线段夹角为$\theta$,那么线段在直线上的投影长度为$\left|d\cos ...

  3. 【kd-tree】bzoj3489 A simple rmq problem

    Orz zyf教给蒟蒻做法 蒟蒻并不会这题正解……(可持久化树套树?...Orz 对于每个点,我们可以求出pre[i],nex[i],那么询问的答案就是:求max (a[i]),其中 i 满足(pre ...

  4. 【费用流】bzoj1520 [POI2006]Szk-Schools

    注意:建图的时候,一定要把旧标号相同的分开. #include<cstdio> #include<algorithm> #include<cstring> #inc ...

  5. 【MySQL笔记】数据定义语言DDL

    1.创建基本表   create table <表名> (<列名><数据类型>[列级完整性约束条件]                                 ...

  6. Easyui treegrid 无法显示树形结构解决办法

    easyui treegrid 中检查了数据结构没有问题的,但就是不展示树形结构, 检查发现原来是 var columnsAll = [ { title: '任务ID', field: 'TaskID ...

  7. 【mybatis】mybatis方法访问报错:org.apache.ibatis.builder.IncompleteElementException: Could not find result map com.pisen.cloud.luna.ms.goods.base.domain.GoodsConfigQuery

    在调用mapper.xml中的方法的时候,报错: org.apache.ibatis.builder.IncompleteElementException: Could not find result ...

  8. WebServic dynamic url

    How to make your Web Reference proxy URL dynamic 开发环境和部署环境,Webservice 的URL不同 需将url 配置到 web.config文件中 ...

  9. [Git] Git 的origin和master分析

    转载: http://lishicongli.blog.163.com/blog/static/1468259020132125247302/ 首先要明确一点,对git的操作是围绕3个大的步骤来展开的 ...

  10. ylbtech-LanguageSamples-ConditionalMethods(条件方法)

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-ConditionalMethods(条件方法) 1.A,示例(Sample) 返回顶部 ...