Java Eclipse RCP(1)-------OSGi的基本原理

来源:互联网 发布:加工中心倒角c1编程 编辑:程序博客网 时间:2024/06/06 00:20

1、基本概念
在eclipse项目开始之初,并没有创建RCP的意图。本意是要开发一个集成开发工具的平台。RCP是富客户端平台的缩写。所谓富客户端,就是用来区分终端客户端和简单界面的客户端。当然,我们现在看到的绝大部分消费级商业程序都属于富客户端。一些欣赏eclipse界面的黑客将eclipse改造为了一个可以开发其他他们需要的程序的平台。后来,这被社区所接受。此时,eclipse百年城了一个组件的框架,而实现基本功能的单元被称为插件(bundle、plug-in)。
OSGi(open service gateway initiative)是面向java的动态模型系统,提供一种面向服务的架构,使这些组件可以动态的发现对方。这个框架可以被划分为四个层次:
L0: 运行环境
L1: 模块
L2: 生命周期管理
L3: 服务注册
(安全层在其中的每一层都有)
OSGi 是目前动态模块系统的事实上的工业标准。 Equinox(OSGi R4 RI) 则是的 Eclipse 所使用的 OSGi 框架。
对于用户而言,workbench(工作台)就是一个窗口集。而一个workbench可以有一个或者多个透视图(perspective)。而透视图包含一个或多个视图(view)和编辑器(editor)。视图是工作台内可以可视组件,通常就是用来浏览分层信息(工作台中的资源),打开编辑器等。一个工作台窗口只能有一个特定类型视图的一个实例。在视图中做出的修改会立即保存。而编辑器可以用来修改和浏览资源,遵循打开,保存,关闭这一生命周期模型。一个工作台窗口内可以有一个编辑器类型的多个实例。
常用的java图形库有三种,分别是swing,awt和swt。前两者是java语言自带的,swt是原来IBM领导的开源项目,这也就意味着发布时必须带上特定的库文件。SWT的底层是由C编写,所以执行效率非常高,这点和awt一样,都是调用系统层的GUI api。而JFace是对Swt的封装。

2、基本代码架构
(1)首先,系统必须要有一个application类。实现了IApplication的接口。在类的内部,要实现一个start方法。请将这个方法理解为你main函数。
(2)在上述方法中,需要一个Display对象(无所谓)ApplicationWorkbenchAdvisor对象(下面介绍)来创建一个Workbench对象。这将打开一个窗口和事件循环。
(3)ApplicationWorkbenchAdvisor是程序中最重要的内容。顾名思义,他告诉workbench该如何做,做什么:比如要显示的初始透视图,要使用的workbenchwindowadvisor。
(4)最初的透视图由它的标识符确定。
(5)每一个窗口都有一个workbenchwindowadvisor。
(6)actionbar 

0 0
原创粉丝点击