GEF图形编辑框架入门教程
5星 · 超过95%的资源 需积分: 50 128 浏览量
更新于2024-07-30
收藏 1.15MB PDF 举报
"GEF (Graphical Editing Framework) 是一个用于构建图形化编辑器的开源框架,主要用于开发基于Eclipse的富客户端平台(RCP - Rich Client Platform)的应用。本教程适用于初学者,由Epitech的学生Jean-Charles Mammana、Romain Meson和Jonathan Gramain在2007年于INRIA合作编写。教程涵盖的内容包括RCP插件创建、模型建立、图形交互、撤销/重做功能、缩放与快捷键、大纲视图、缩略图视图、上下文菜单以及自定义动作的创建等。"
在深入学习GEF之前,首先理解几个核心概念:
1. **Graphical Editing Framework (GEF)**:这是一个用于构建图形用户界面的框架,尤其适用于创建图形化的编辑工具,如流程图编辑器、UML模型设计器等。GEF提供了丰富的API和类库,可以帮助开发者快速实现复杂的图形编辑功能。
2. **Rich Client Platform (RCP)**:Eclipse RCP是一种构建桌面应用程序的框架,它允许开发者使用Java语言创建功能丰富的、可扩展的应用程序,而无需从零开始构建用户界面。
教程分为多个部分,逐步指导读者掌握GEF的使用:
**Part 1: Creation of a RCP plug-in**
这部分介绍了如何创建一个基于Eclipse RCP的插件项目,这是构建任何Eclipse插件的基础。读者将学习到如何配置项目结构,以及如何定义插件依赖。
**Part 2: Creation of the model**
模型是图形编辑器的核心,这部分教导如何定义数据模型,这通常涉及到定义Java类来表示图形元素及其关系。
**Part 3: First interaction with the graph**
讲解如何将模型与图形视图关联,使得模型的改变能在图形上直观地体现出来,同时,图形的修改也能同步更新到模型中。
**Part 4: Undo/Redo**
在图形编辑器中,撤销/重做功能是必不可少的。这部分教如何实现这些功能,让用户的操作可以被记录和恢复。
**Part 5: Zoom and keyboard shortcuts**
这部分涉及图形界面的交互增强,如缩放功能和键盘快捷键的设置,提高用户在编辑过程中的效率。
**Part 6: Outline**
大纲视图提供了另一种查看和导航模型元素的方式,帮助用户快速定位和组织图形元素。
**Part 7: Miniature view**
缩略图视图能让用户鸟瞰整个图形,便于全局布局和调整。
**Part 8: Context menu**
上下文菜单(右键菜单)是添加额外操作的常见方式,这部分教如何定制和绑定图形元素的上下文菜单。
**Part 9: Creating a custom action**
这部分涵盖了创建自定义操作的全过程,包括Wizard创建、命令创建、动作创建和编辑策略的关联。通过自定义动作,开发者可以扩展GEF的功能,实现特定的业务逻辑。
**Wizard creation**:向导(Wizard)是Eclipse中引导用户输入信息的一种交互形式,用于创建或编辑模型元素。
**Command creation**:命令(Command)是Eclipse事件驱动架构的关键,它封装了应用中的操作,可以被触发、撤销或重做。
**Action creation**:动作(Action)是命令的可视化表示,通常与按钮、菜单项等UI元素关联。
**EditPolicy creation**:编辑策略(EditPolicy)定义了图形元素的行为,例如拖放、连接、大小调整等。
**Associate the new EditPolicy with the EditParts**:将新创建的编辑策略关联到编辑部件(EditPart),使得策略在图形编辑中生效。
最后,关于“property activation to update views”,这可能是指当模型属性发生变化时,如何自动更新图形视图。在GEF中,通常通过监听模型变化并调用相应视图的`refresh()`方法来实现这一功能。
通过这个教程,读者将全面了解GEF的使用,并具备开发自己的图形编辑器的能力。由于是英文版,建议有一定英语基础的学习者进行阅读。
2019-04-04 上传
2012-03-14 上传
2018-02-15 上传
点击了解资源详情
2012-02-10 上传
101 浏览量
2010-05-30 上传
2021-06-28 上传
2022-09-23 上传
康派尔
- 粉丝: 247
- 资源: 38
最新资源
- ossu-crx插件
- 毕业设计中基于给定微博数据的反作弊识别,用python开发。.zip
- k-bucket:Kademlia DHT K-bucket实现为二叉树
- OpenTutor:utorTutoring App第二名HackAmherst 2018
- modis_conversion_toolkit
- 毕业设计,PHP实现的大学生兼职信息平台.zip
- Delay-using-SysTick:延迟将SysTick用于STM32F411
- 22518_22518开genghao_pos_
- SearchApp:Fordfoundation实用程序源代码-Search source code
- OOP-Design-Decentralized-Gnutella-P2P-File-Sharing-System:面向对象设计
- 基于PCB的Gerber File 数字格式的意义.zip
- data-center
- hackmit:现实世界的分析
- 本科毕业设计,一个高校宿舍管理与交流系统.zip
- 基于SSM+vue的宠物服务平台.zip
- unitbv-keynotes:我在UniTBv学习期间举行的其他主题演讲