1..IWorkbench:
workbench是eclipse用户界面中最底层的对象,它建立在 Display之上,包含一个或多个 IWorkbenchWindow,用于向终端用户呈现信息
当你的 workbench插件被激活的时候,eclipse平台将为之创建一个实例,在平台的整个生命周期中,只允许出现该 workbench的唯一实例
2..IWorkbenchWindow
在面提到 IWorkbench利用其包含的 IWorkbenchWindow向终端用户展现信息
"A workbench window is a top level window in a workbench. "
IWorkbenchWindow通常包含 菜单栏, 工具栏, 状态栏和一个用来显示 IWorkbenchPage的 主要区域
每个 IWorkbenchWindow可以包含一个或多个 IWorkbenchPage,但是同一时刻只允许一个 IWorkbenchPage被激活并向终端用户显示
3..IWorkbenchPage
IWorkbenchPage的功能就是组织一个或多个 IEditorPart或 IViewPart显示在一个 IWorkbenchWindow中,最终呈现给终端用户
IWorkbenchPage包含一个或多个 IEditorPart或 IViewPart,这些 IEditorPart和 IViewPart完全被包含在这个 IWorkbenchPage并且不能与其它的 IWorkbenchPage共享
IWorkbenchPage上定义的 Layout和 ActionSet就是我们常说的透视图—— perspective了
4..IWorkbenchPart
IWorkbenchPart就是上面提到的 IEditorPart和 IViewPart,它也只包含这两个子类型,看到这里大家应该明白,我们绝大部分的工作就是基于这个 IWorkbenchPart
关于 IEditorPart和 IViewPart,相信大家应该已经十分了解了
IViewPart常常被用于导航信息的层次结构,例如我们的workspace,或者用来打开一个编辑器,或者用来显示这个编辑器的某些属性
IEditorPart多被用来编辑或浏览一个文档或一个输入的对象,而这个输入的对象必须是一个 IEditorInput,IEditorPart遵循的就是 打开-保存-关闭的生命周期模型
最后给出 IWorkbenchPart的生命周期模型,希望对大家的开发能够有所帮助:
IWorkbenchPart拓展点被创建:
实例化IWorkbenchPart
创建一个IWorkbenchPartSite
调用part.init(site)
IWorkbenchPart成为可见:
调用part.createControl(parent)绘制 IWorkbenchPart
激活partOpened event
IWorkbenchPart被激活或者取得焦点:
调用part.setFocus()
激活partActivated event
IWorkbenchPart被关闭:
如需要保存,完成保存
解除IWorkbenchPart的激活状态
激活partClosed event
从界面上移除IWorkbenchPart
调用part.dispose()