文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发数据结构使用图形编辑框架创建基于 Eclipse 的应用程序
精品推荐
特别推荐
·网游外挂编写完全攻略
·开发WDM型的USB设备驱动程序
·数据库设计范式深入浅出
·理解软件保护技术之序列号方式
·大型网站必鉴:分销渠道的结构
·你的代码真的很健壮吗
·利用HOOK拦截封包原理
·四种网络游戏外挂的设计方法
·程序语言效率比较
·五子棋算法
热点TOP10
·剖析备份个人数据十大注意事项
·BPEL的基本活动介绍
·BPEL模型基础
·VS2005视频教程之站点地图[视频]
·DB2数据库部分日常实用操作
·数据结构教程 第十五课 串的表示和实现
·MD5算法解释
·逆向思维 《魔兽世界》封包分析
·IE工具条插件Toolbar开发简介
·网游外挂编写完全攻略

使用图形编辑框架创建基于 Eclipse 的应用程序

日期:2008年6月12日 作者: 查看:[大字体 中字体 小字体]



  Randy Hudson
软件开发人员, IBM

本文描述了使用图形编辑框架(Graphical Editing Framework,GEF)创建一个基于 Eclipse 的应用程序所涉及的初始步骤。GEF 被用来构建各种用于 Eclipse 的应用程序,包括状态图、活动图、类图、用于 AWT、Swing 和 SWT 的 GUI 构建器以及过程流编辑器。Eclipse 和 GEF 都是开放源码技术。二者也都包含在 IBM 的 WebSphere Studio 工作台中。
本文为您从头到尾地介绍了使用 GEF 的步骤。我们不是完整地完成每个步骤,而是将使用您的应用程序模型的子集,并先使该子集工作。例如,开始我们可能会忽略连接,或者只注重于您应用程序中图形元素类型的子集。

GEF 概述
GEF 假定您拥有一个希望以图形方式显示和编辑的模型。为了做到这一点,GEF 提供了可在 Eclipse 工作台中任何地方使用的查看器(类型为 EditPartViewer )。象 JFace 查看器一样,GEF 查看器是 SWT 控件上的适配器。但是它们的类似之处仅此而已。GEF 查看器基于模型-视图-控制器(model-view-controller,MVC)体系结构。

控制器作为视图和模型之间的桥梁(请参阅图 1)。每个控制器(即本文所谓的 EditPart)负责将模型映射到它的视图,也负责对模型进行更改。EditPart 还观察模型并更新视图,以反映模型状态中的变化。EditPart 是一种对象,用户将与这种对象进行交互。稍后将更详细地介绍 EditPart。

使用图形编辑框架创建基于 Eclipse 的应用程序(图一)


GEF 提供了两种查看器类型:图形的和基于树的。每种查看器都主管一种不同类型的 视图。图形查看器使用了在 SWT 画布(Canvas)上绘制的 图形(figure)。图形是在 Draw2D 插件中定义的,该插件是 GEF 的一部分。TreeViewer 将 SWT 树和 TreeItem 用于其视图。

第 1 步. 选定自己的模型
GEF 对于模型一无所知。任何模型类型都可工作,只要它符合下面描述的特性。

模型中有什么?
所有东西都在模型中。模型是唯一会被持久存储和恢复的东西。您的应用程序应当将所有重要数据都存储在模型中。在编辑、撤销和重做的过程中,模型是唯一保持不变的。随着时间推移,将对图形和 EditPart 进行垃圾收集处理并重新创建。

当用户与 EditPart 交互时,EditPart 并不直接操作模型。而是创建一个封装了更改的 命令(Command)。命令可用来验证用户的交互,并且提供撤销和重做支持。

严格地说,命令概念上也是模型一部分。它们 本身并不是模型,而是一些方法,模型是由这些方法编辑的。命令用于执行用户的所有可撤销的更改。理论上,命令应当只了解模型。它们应当避免引用 EditPart 或图形。类似地,如果可能,命令应当避免调用用户界面(例如弹出式对话框)。

两个模型的故事
一个简单的 GEF 应用程序就是用于绘制图的编辑器。(这里 图只意味着图片,而不是类图等)图可以被建模成某些形状。一个形状可能具有位置、颜色等特性,并且可能是多个形状构成的一组结构。这里没有什么可惊讶的,并且前述需求也易于维护(请参阅图 2)。

图 2. 一个简单的模型

使用图形编辑框架创建基于 Eclipse 的应用程序(图二)


另一种常见的 GEF 应用程序是 UML 编辑器,例如类图编辑器。图中的一段重要信息就是 (x, y) 位置,类就出现在该位置上。根据前一节的介绍,您可能会以为模型必须将一个 类描述成具有 x和 y特性。大多数开发人员都不希望由于无意义的属性而“污染”其模型。在这类应用程序中,术语“业务”模型可用于指代基本模型,重要语义的详细信息存储在基本模型中。而特定于图的信息存储在“视图”模型(它指的是业务模型中某样东西的“视图”;在一个图中可多次查看某个对象)中。有时候这种划分甚至会反映在工作空间中,其中不同的资源可能被分别用来持久存储图和业务模型。甚至可能有多个图对应于同一个业务模型(请参阅图 3)。

图 3. 划分成业务模型和视图模型的模型

使用图形编辑框架创建基于 Eclipse 的应用程序(图三)


不管您的模型划分成了两个部分,还是划分成了多个资源,对于 GEF 而言这都是无关紧要的。术语模型用于指代整个应用程序模型。屏幕上的一个对象可能对应于模型中的多个对象。GEF 旨在允许开发人员方便地处理这类映射。

通知策略
对视图进行更新几乎总是由来自模型的通知而导致的。您的模型必须提供某种通知机制,该机制必须映射到您应用程序中相应的更新。而只读模型或不能进行通知的模型(例如文件系统或远程连接)可能是例外。

[1] [2] [3] [4] [5] [6] 下一页 




上一篇:利用套接字机制实现Flash与数据库连接

下一篇:注册ActiveX控件的几种方法

相关文章:
·为什么iexplore.exe在打开网页时CPU使用会100%?
·溯雪使用说明
·键盘的使用与指法训练
·从零开始 无线网络终极应用宝典
·Firefox 使用常见问题和解决方法
·GHOST使用方法(图解)
·注册表应用100例—注册表使用全攻略之十一
·Vista系统使用技巧总结
·添加或删除启动时自动运行的程序
·WindowsXP应用技巧的具体总结
相关软件:
·黑客视频教程 VMware虚拟机的安装和使用
·C语言程序设计
·黑客视频教程-灰鸽子远控使用教程
·使用GPMC随心所欲管理组策略
·Adobe Photoshop CS 2 简体中文使用指南
·Windows环境下32位汇编语言程序设计
·数码相机购买使用宝典 V1.03.29
·注册表实例应用视频教程swf
·Excel应用宝典
·AUTOCAD 2002机械设计应用与实例

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn