• 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的功能就是组织一个或多个 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()

  • 相关阅读:
    leetCode-Two Sum
    leetCode-Pascal's Triangle II
    leetCode-Maximum Average Subarray I
    css 实现垂直水平居中
    poping 心法
    我的机密
    MSMQ消息队列的使用
    生成最大单号 scope_identity
    sqlserver ADO.net 查询数据库加锁,事务提交
    漂亮的JS插件
  • 原文地址:https://www.cnblogs.com/wwssgg/p/15989298.html
Copyright © 2020-2023  润新知