学习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. 洛谷 P1852 [国家集训队] 跳跳棋

    题目描述 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子. 我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置.我们要通过最少的跳动把他们的位置移动 ...

  2. 解决VM虚拟机中的ubuntu不能全屏的问题

    Ctrl+alt+T:打开终端 输入命令:sudo apt install open-vm* 运行之后重启一下虚拟机就可以了

  3. 协同过滤中的Grey Sheep问题

    寒神解释:某些用户的倾向性和品味没有一致性,比较散.因此在协同过滤这种算法里,没办法和某个group有很高的相似/一致度,推荐会失效. 我理解是寻找邻居时候计算得到的相似度和其他用户相似度都非常小,或 ...

  4. 使用apt-cache search搜索想要的软件包

    环境: Ubuntu14.10 我在编译u-boot代码的时候遇到了如下问题: LD test/dm/built-in.o CC examples/standalone/stubs.o LD exam ...

  5. 【java】字符串的反转

    @org.junit.Test public void test(){ String a = "I IOVE CHINA"; if(a.indexOf(" ") ...

  6. javascript:判断支持哪种监听

    if (typeof window.addEventListener != "undefined") { window.addEventListener("load&qu ...

  7. mongodb_profier

    http://docs.mongodb.org/manual/reference/database-profiler/ 一.获取.设置profile(profile用collection存储数据) d ...

  8. ORACLE 数据库名、实例名、ORACLE_SID的区别

    数据库名(DB_NAME).实例名(Instance_name).以及操作系统环境变量(ORACLE_SID) 在ORACLE7.8数据库中只有数据库名(db_name)和数据库实例名(instanc ...

  9. css的checkbox样式变化

    1.CSS body{font-family:'微软简行楷'} ul li{list-style:none; margin:10px;color:#4985d7;} .myCheck { displa ...

  10. 监控Coherence成员的加入和离开集群事件

    对server事件的监控主要是实现MemberListener类,对Cache事件的监控主要通过MapListener 参考代码 package coherencetest; import com.t ...