GEF图形编辑框架开发指南:从新手到入门
需积分: 17 159 浏览量
更新于2024-07-18
收藏 2.22MB PDF 举报
GEF开发指南
GEF(Graphical Editing Framework,图形编辑框架)是一款功能强大且灵活的图形编辑框架,用于构建复杂的图形编辑应用程序。该指南旨在帮助开发者从新手到入门,详细讲解了如何使用GEF进行图形编辑。
**目录**
1. 导论(Introduction)
GEF是一个基于Eclipse RCP(Rich Client Platform)架构的图形编辑框架,旨在提供一个灵活、可扩展的图形编辑解决方案。该框架提供了一个通用的图形编辑模型,支持图形元素的创建、编辑、删除等操作。
2. 创建RCP插件(RCP Plug-in)
要开始使用GEF,首先需要创建一个RCP插件,该插件将作为GEF的宿主环境。GEF提供了一个名为GEF Runtime的插件,用于承载GEF框架。
3. 建立模型(Model)
在GEF中,模型是指图形元素的抽象表示。模型可以是简单的图形元素,如点、线、面,也可以是复杂的图形元素,如图表、流程图等。GEF提供了一个名为GMF(Graphical Modeling Framework)的模型编辑框架,用于构建和编辑模型。
4. 与图形(Figure)的交互
图形是指图形元素的视觉表示。GEF提供了一个名为Draw2D的图形库,用于绘制和编辑图形元素。Draw2D支持多种图形格式,如SVG、EMF等。
5. 撤销/回复(Undo/Redo)
GEF提供了一个撤销/回复机制,用于记录和撤销图形编辑操作。该机制基于Eclipse的命令框架,支持多级撤销和回复。
6. 缩放(Zoom)和快捷键(Keyboard Shortcut)
GEF提供了一个缩放机制,用于对图形元素进行缩放和平移。同时,GEF也提供了一些快捷键,用于快速编辑图形元素。
7. 大纲(Outline)
大纲是指图形元素的树形结构表示。GEF提供了一个名为TreeViewer的组件,用于显示和编辑图形元素的大纲。
8. 缩小(鸟瞰,BirdView)视图
GEF提供了一个缩小视图,用于显示图形元素的缩小视图。该视图可以帮助用户快速浏览和定位图形元素。
9. 环境菜单(ContextMenu)
GEF提供了一个环境菜单,用于提供图形编辑操作的快捷方式。环境菜单可以根据图形元素的类型和状态进行动态更新。
10. 创建用户自定义操作(Custom Action)
GEF提供了一个名为Action的机制,用于创建用户自定义操作。用户可以使用该机制来创建自定义的图形编辑操作。
11. 属性页(Property Sheet)
GEF提供了一个属性页,用于显示和编辑图形元素的属性。属性页可以根据图形元素的类型和状态进行动态更新。
12. 添加新的图形元素
GEF提供了一个名为Palette的组件,用于添加新的图形元素。Palette支持多种图形元素类型,如点、线、面等。
13. 拖放(Drag and Drop,DnD)
GEF提供了一个拖放机制,用于拖放图形元素。该机制支持多种拖放模式,如从Palette中拖放图形元素到图形编辑区。
14. 剪切和粘贴(Cut and Paste)
GEF提供了一个剪切和粘贴机制,用于剪切和粘贴图形元素。该机制支持多种剪切和粘贴模式,如剪切到剪贴板、粘贴到图形编辑区等。
15. 总结(Conclusion)
GEF是一个功能强大且灵活的图形编辑框架,提供了一个通用的图形编辑解决方案。该指南旨在帮助开发者快速上手使用GEF,详细讲解了如何使用GEF进行图形编辑。
2011-11-02 上传
2008-10-14 上传
101 浏览量
2016-09-04 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
jerry_mr
- 粉丝: 2
- 资源: 15
最新资源
- 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工具:自动化部署节点密钥生成