Eclipse插件之IWorkbench,IWorkbenchWindow,IWorkbenchPage,IWorkbenchPart……

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的功能就是组织一个或多个 IEditorPartIViewPart显示在一个 IWorkbenchWindow中,最终呈现给终端用户
IWorkbenchPage包含一个或多个 IEditorPartIViewPart,这些 IEditorPartIViewPart完全被包含在这个 IWorkbenchPage并且不能与其它的 IWorkbenchPage共享
IWorkbenchPage上定义的 LayoutActionSet就是我们常说的透视图—— perspective
4..IWorkbenchPart
IWorkbenchPart就是上面提到的 IEditorPartIViewPart,它也只包含这两个子类型,看到这里大家应该明白,我们绝大部分的工作就是基于这个 IWorkbenchPart
关于 IEditorPartIViewPart,相信大家应该已经十分了解了
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()

你可能感兴趣的:(eclipse)