学习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. HDU 2874 Connections between cities(LCA+并查集)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=2874 [题目大意] 有n个村庄,m条路,不存在环,有q个询问,问两个村庄是否可达, 如果可达则输出 ...

  2. [Contest20180426]校门外的树

    $\newcommand{\align}[1]{\begin{align*}#1\end{align*}}$题意:对于一个排列$p_{1\cdots n}$构造一个图,如果$i\lt j$且$p_i\ ...

  3. [luogu3455]ZAP-Queries

    有时候我们会遇到一类问题:求$f(n)$,当然它是不好直接计算的,但如果$F(n)=\sum\limits_{d|n}f(d)$或$F(n)=\sum\limits_{\substack{n|d\\d ...

  4. 【概率dp】Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) D. Jon and Orbs

    直接暴力dp就行……f(i,j)表示前i天集齐j种类的可能性.不超过10000天就能满足要求. #include<cstdio> using namespace std; #define ...

  5. 【bzoj1370】【团伙】原来并查集还能这么用?!

    (画师当然是武内崇啦) Description 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1. 我朋友的朋友是我的朋友: 2. 我敌人的敌人是我的朋友: 所有是朋友的人组成一 ...

  6. 位图(BitMap)索引

    前段时间听同事分享,偶尔讲起Oracle数据库的位图索引,顿时大感兴趣.说来惭愧,在这之前对位图索引一无所知,因此趁此机会写篇博文介绍下位图索引. 1. 案例 有张表名为table的表,由三列组成,分 ...

  7. Array.apply 方法的使用

    Array.apply(null, {length: 5}) length为特殊字段,意思是生成一个长度为5的数组,由于没赋值,所以都是undefined; 如果要赋值,可以这样 console.lo ...

  8. 折腾kubernetes各种问题汇总

    折腾fluend-elasticsearch日志,折腾出一大堆问题,解决这些问题过程中,感觉又了解了不少. 1.如何删除不一致状态下的rc,deployment,service. 在某些情况下,经常发 ...

  9. CentOS release 6.6 (Final)如何安装firefox和chromium

    一.firefox的安装: 1. 安装remi源 rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8 ...

  10. VR开发者必看:4大最为值得关注的内容平台【转】

            时间 2016-01-19 14:12:57 原文  http://www.sfw.cn/xinwen/478369.html 主题 虚拟现实 Oculus 对很多有意涉及VR行业的内 ...