Eclipse插件之IWorkbench 分享
来源:互联网 发布:关于知行的诗句 编辑:程序博客网 时间:2024/06/06 17:49
在SDE下游部分很大一部分为Eclipse plugin开发。这其中很多对于用户的展示部分,由于整个Eclipse有自己独有一套展示类层次结构,在做Plugin之前,我们先要对Eclipse展示部分各个类做个介绍。
1..IWorkbench:
workbench是eclipse用户界面中最底层的对象,它建立在Display之上,包含一个或多个IWorkbenchWindow,用于向终端用户呈现信息
当你的workbench插件被激活的时候,eclipse平台将为之创建一个实例,在平台的整个生命周期中,只允许出现该workbench的唯一实例
IWorkbench workbench = PlatformUI.getWorkbench();
2..IWorkbenchWindow
在面提到IWorkbench利用其包含的IWorkbenchWindow向终端用户展现信息
"A workbench window is a top level window in a workbench. "
IWorkbenchWindow通常包含菜单栏,工具栏,状态栏和一个用来显示IWorkbenchPage的主要区域
每个IWorkbenchWindow可以包含一个或多个IWorkbenchPage,但是同一时刻只允许一个IWorkbenchPage被激活并向终端用户显示
IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
3..IWorkbenchPage
IWorkbenchPage的功能就是组织一个或多个IEditorPart或IViewPart显示在一个IWorkbenchWindow中,最终呈现给终端用户
IWorkbenchPage包含一个或多个IEditorPart或IViewPart,这些IEditorPart和IViewPart完全被包含在这个IWorkbenchPage并且不能与其它的IWorkbenchPage共享
IWorkbenchPage上定义的Layout和ActionSet就是我们常说的透视图——perspective了
IWorkbenchWindow win = windows[i];
IWorkbenchPage[] pages = win.getPages();
4..IWorkbenchPart
IWorkbenchPart就是上面提到的IEditorPart和IViewPart,它也只包含这两个子类型,看到这里大家应该明白,我们绝大部分的工作就是基于这个IWorkbenchPart
关于IEditorPart和IViewPart,相信大家应该已经十分了解了
IViewPart常常被用于导航信息的层次结构,例如我们的workspace,或者用来打开一个编辑器,或者用来显示这个编辑器的某些属性
IEditorPart多被用来编辑或浏览一个文档或一个输入的对象,而这个输入的对象必须是一个IEditorInput,IEditorPart遵循的就是打开-保存-关闭的生命周期模型
最后给出IWorkbenchPart的生命周期模型,希望对大家的开发能够有所帮助:
· IWorkbenchPart拓展点被创建:
o 实例化IWorkbenchPart
o 创建一个IWorkbenchPartSite
o 调用part.init(site)
· IWorkbenchPart成为可见:
o 调用part.createControl(parent)绘制 IWorkbenchPart
o 激活partOpened event
· IWorkbenchPart被激活或者取得焦点:
o 调用part.setFocus()
o 激活partActivated event
· IWorkbenchPart被关闭:
o 如需要保存,完成保存
o 解除IWorkbenchPart的激活状态
o 激活partClosed event
o 从界面上移除IWorkbenchPart
o 调用part.dispose()
- Eclipse插件之IWorkbench 分享
- Eclipse插件之IWorkbench,IWorkbenchWindow,IWorkbenchPage,IWorkbenchPart……
- 分享Eclipse下的数据库插件DBViewer
- Zookeeper浏览器工具和Eclipse插件分享
- 分享一个Eclipse的UML插件-AmaterasUML
- Zookeeper浏览器工具和Eclipse插件分享
- Zookeeper浏览器工具和Eclipse插件分享
- Zookeeper浏览器工具和Eclipse插件分享
- Eclipse插件之SQLExplorer
- Eclipse插件之Spket
- Eclipse 之 EasyExplore 插件
- Eclipse 之 EasyExplore 插件
- Eclipse 之 EasyExplore 插件
- eclipse 插件之log4e
- eclipse 插件之UML
- Eclipse插件之SearchInJar
- Eclipse插件之Findbugs
- eclipse 插件之log4e
- 写给初学者--"import static net.mindview.util.Range.*"错误怎么办
- Linux下GCC使用方法简介
- 选修课浅悟
- linux下的关机和重启流程
- Windows tls 测试
- Eclipse插件之IWorkbench 分享
- 大端模式和小端模式
- 使用单片机的UART(COM口)进行传输 (单片机 LM3S811)
- 用GDB调试程序
- JavaScript高级程序设计
- Unix and Object-Oriented Languages
- makefile
- ASP常用数据库连接及操作的方法和技巧
- 创维推出基于RFID的“云电视”