(注:上图是Eclipse 2.1.x版本的UI的组成分解,Eclipse 3.0.x版本的UI组成和Eclipse 2.1.x一样的,只是界面风格有所变化)
1、Workbench(IWorkbench接口)
l Eclipse平台UI的根对象
l 包括一组Workbench窗口
2、Workbench窗口(IWorkbenchWindow接口)
l Eclipse平台UI中最顶层窗口
l 包括ActionBars 和Workbench页
3、ActionBars(IActionBars接口)
l 包括菜单条、工具条(或Cool工具条,IActionBars2接口)和状态条
l 这些ActionBars由对应的管理器来管理:IMenuManager、IToolBarManager、IStatusLineManager和ICoolBarManager
l 图中的Short cut bar其实是用于切换Workbench页的工具条
l IAction接口用来表示可以被用户触发的非UI的命令,通常与按钮、菜单条项目、工具条项目关联
4、Workbench页(IWorkbenchPage接口)
l 包括在Workbench窗口显示的一组Workbench部分
l 透视图(Perspectiive)是Workbench页的布局模版,用来布局Workbench页中的Workbench部分
5、Workbench部分(IWorkbenchPart接口)
l 有两种类型:视图(IViewPart接口)和编辑器(IEditorPart接口),使用扩展来创建
l 可以有自己私有的ActionBars(其中状态条与父窗口共享),还可以拥有弹出菜单
l IWorkbenchPartSite接口是Workbench部分和Workbench之间的中间接口,对应视图和编辑器,扩展了IViewSite和IEditorSite接口,用来获得上级容器,如Workbench页、Workbench窗口,以及私有的ActionBars、弹出菜单等
l Workbench部分内部由SWT小部件组成,使用指定的布局方式进行布局
6、Workbench部分的生命周期
(1)Workbench部分创建时
l 实例化Workbench部分
l 创建Workbench部分的site
l 调用part.init(site)方法
(2)Workbench部分在Workbench中可见时
l 调用part.createControl(parent)方法创建实际的SWT小部件
l 触发partOpened事件
(3)Workbench部分被激活或获得焦点时
l 调用part.setFocus()方法
l 触发partActivated事件
(4)Workbench部分关闭时
l 如果需要保存,进行保存;如果失败或取消就返回
l 如果Workbench部分激活状态,则使其非激活
l 触发partClosed事件
l 移去Workbench部分的表示;Workbench部分的控件从SWT小部件树型结构中移除
l 调用part.dispose()方法(此为结束信号)