GEF开发详解:可视化框架与Eclipse集成
需积分: 9 150 浏览量
更新于2024-07-20
收藏 388KB PDF 举报
"GEF开发指南 中文版 - GEF (Graphical Editing Framework) 是一套基于 MVC 结构的可视化开发框架,适用于 Eclipse 插件开发。"
在GEF(Graphical Editing Framework)开发中,它主要被设计用于构建图形化编辑器,特别是在Eclipse平台上。GEF的核心理念是通过Model-View-Controller(MVC)架构来实现图形界面与数据模型的解耦。以下是关于GEF开发的一些关键知识点:
1. **何时使用GEF**:
GEF适合于需要创建图形界面以表示和编辑数据模型的场合,尤其在开发Eclipse插件时,能够利用Eclipse的生态系统提供丰富的功能和良好的集成。
2. **EditParts**:
EditParts是GEF中的核心组成部分,它们是模型与视图之间的适配器。每个EditPart对应于模型中的一个对象,并负责在屏幕上呈现该对象。EditParts不仅管理其对应模型的可视化表示,还处理用户交互,如拖放、选择等。
3. **图形界面**:
GEF使用Draw2D库来绘制图形, Draw2D专注于高效的图形绘制和布局,而GEF则在此基础上添加了编辑操作的支持,使得用户能够对图形进行创建、修改和删除等操作。
4. **编辑和编辑策略**:
编辑策略(EditPolicies)是EditParts的一部分,它们定义了特定类型的编辑行为。例如,一个节点的编辑策略可能包含添加子节点、删除节点等操作。
5. **EditPart生命周期**:
EditPart有自己的生命周期,包括初始化、创建视图、更新视图以及销毁等阶段。在这些阶段中,EditPart会响应模型的变化并更新视图,或者处理用户的编辑操作。
6. **工具和绘图板**:
GEF支持各种用户交互,如鼠标和键盘操作,以及与Eclipse工作台的交互。工具(Tools)是用户与绘图板(Drawing Board)交互的方式,它们触发请求(Request),这些请求随后转化为对模型的命令(Command)。
7. **模型(Model)**:
模型可以是任何持久化的数据,但为了与GEF配合,模型需要具有通知机制,以便在模型变化时通知视图。模型通常与命令(Command)紧密关联,命令用于修改模型,并支持撤销/重做操作。
8. **视图(View)**:
视图是用户可见的部分,包括图形(Figures)和树节点(TreeItems)。在GEF中,这些元素通过EditParts与模型关联。
9. **控制器(Controller) - EditPart**:
EditPart作为模型和视图之间的桥梁,它监听模型变化,更新视图,并响应用户编辑操作。EditPolicy是EditPart的助手,帮助处理具体的编辑任务。
10. **Viewers**:
EditPartViewer是GEF中的一个重要组件,它管理一组EditParts,提供对它们的布局和导航支持。Viewers允许开发者定义不同类型的视图,如树形视图或表视图,来展示模型数据。
GEF提供了一套完整的框架,用于在Eclipse环境中创建复杂的图形编辑器,它通过封装图形绘制、用户交互和模型管理,简化了开发过程,让开发者可以更专注于业务逻辑和用户体验。
2011-11-02 上传
2018-04-26 上传
2008-10-14 上传
101 浏览量
2016-09-04 上传
点击了解资源详情
点击了解资源详情
哔啵啵哔啵哔
- 粉丝: 14
- 资源: 30
最新资源
- Elasticsearch核心改进:实现Translog与索引线程分离
- 分享个人Vim与Git配置文件管理经验
- 文本动画新体验:textillate插件功能介绍
- Python图像处理库Pillow 2.5.2版本发布
- DeepClassifier:简化文本分类任务的深度学习库
- Java领域恩舒技术深度解析
- 渲染jquery-mentions的markdown-it-jquery-mention插件
- CompbuildREDUX:探索Minecraft的现实主义纹理包
- Nest框架的入门教程与部署指南
- Slack黑暗主题脚本教程:简易安装指南
- JavaScript开发进阶:探索develop-it-master项目
- SafeStbImageSharp:提升安全性与代码重构的图像处理库
- Python图像处理库Pillow 2.5.0版本发布
- mytest仓库功能测试与HTML实践
- MATLAB与Python对比分析——cw-09-jareod源代码探究
- KeyGenerator工具:自动化部署节点密钥生成