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

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

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



通知策略通常是分布式的(每对象)或集中式的(每域)。域通知器了解到对模型中任何对象的每次更改,然后将这些更改向域侦听器广播。如果您的应用程序使用了这种通知模型,您可能要为每个查看器添加一个域侦听器。当该侦听器接收到更改时,它将查找受影响的 EditPart,然后适当地重新分派该更改。如果您的应用程序使用了分布式通知,那么每个 EditPart 通常都将把自己的侦听器添加到任何一个影响它的模型对象。

第 2 步. 定义视图
下一步是决定将如何使用来自 Draw2D 插件的图形显示您的模型。某些图形可直接用来显示模型的某个对象。例如,Label 图形可用来显示 Image 和 String。有时候,通过组合多个图形、布局管理器和/或边框可以获得期望的结果。最后,您可能要编写自己的图形实现,该实现以特定于您应用程序的方式绘图。

有关组合或实现图形和布局的更多信息可在 Draw2D 开发人员指南中找到,该指南包含在 GEF SDK 中。

在和 GEF 一起使用 Draw2D 时,通过遵循下列方针,可以使您的项目更便于管理,并且可以更灵活地更改需求:

不要从头做起。您可以组合所提供的布局管理器以呈现大多数东西。请考虑使用工具栏布局(在垂直或水平方向上)和边框布局的组合来组合多个图形。只有在万不得已时才编写自己的布局管理器。作为参考,请查看 GEF 中提供的调色板。该调色板是使用 Draw2D 中的许多标准图形和布局呈现的。

保持 EditPart 和图形之间“彻底”的分离。如果您的 EditPart 使用了几个图形、布局和/或边框的复合结构,那么请尽量对 EditPart 隐藏详细信息。让 EditPart 自己构建所有东西是可能的(但不是个好主意)。不过这样做并不会导致控制器和视图之间“彻底”分离。EditPart 非常熟悉图形结构,因此以类似的 EditPart 重用该结构是不可能的。此外,更改外观或结构可能会导致意想不到的错误。

替代方法是,您应当编写自己的 Figure 子类,该子类掩藏了图形结构的详细信息。然后定义这个子类最少数量的 API,EditPart(控制器)用这些 API 来更新视图。这种实践(称为 关注分离(separation of concerns))可提高重用机会并使错误更少。

不要从图形引用模型或 EditPart。图形不应该具有对 EditPart 或模型的访问权。在某些情形中,EditPart 可能会将自己作为侦听器添加到图形,但是只会认为它是侦听器,而不是 EditPart。这种去耦合(de-coupling)实践也可以产生更多的重用机会。

使用内容窗格。有时候您拥有一个容器,该容器将包含其它图形元素,但是您需要在容器四周进行一些装饰。例如,一个 UML 类通常显示为框,其顶部标有类名,可能还有一些原型,而底部是为属性和方法保留的。通过组合多个图形可以做到这一点。第一个图形是类的标题框,而另一个图形被指派为 内容窗格。该图形将最终包含表示属性和方法的图形。稍后在编写 EditPart 实现时,并不一定要表明应该将内容窗格用作所有子元素的父元素。
第 3 步. 编写您的 EditPart - 控制器
接下来我们将利用控制器(即 EditPart)将模型和视图联接起来。该步骤在 GEF 中放置“框架”。所提供的类是抽象的,因此客户实际上必须编写代码。结果证明,生成子类不仅是人们熟悉的方法,而且可能也是将模型映射到视图最灵活和简单的方法。

所提供的用于生成子类的基本实现有三种。对于出现在树查看器中的 EditPart 使用 AbstractTreeEditPart 。图形查看器中的继承 AbstractGraphicalEditPart 和 AbstractConnectionEditPart 。本文将着重讨论图形 EditPart。相同的原理同样适用于树查看器。

EditPart 生命周期
在编写您的 EditPart 之前,了解它们来自哪里,以及当不再需要它们时怎样处理它们,这是有帮助的。每个查看器都配置有一个用于创建 EditPart 的工厂(factory)。当您设置查看器的内容时,通过提供表示该查看器输入的模型对象,可以做到这一点。输入通常是最顶部的模型对象,通过该对象可遍历其它所有对象。然后查看器可以使用自己的工厂来构造用于该输入对象的 内容 EditPart。之后,查看器中的每个 EditPart 将填充和管理其自己的子 EditPart(和连接 EditPart),当需要新的 EditPart 时,将委派给 EditPart 工厂,直到填充该查看器。当用户添加新的模型对象时,包含这些对象的 EditPart 将通过构造相应的 EditPart 做出响应。请注意,视图的构造与 EditPart 的构造是同时进行的。因此,构造每个 EditPart 并将它添加到它的父 EditPart 之后,视图(不管是图形还是树项)也会发生同样的过程。

一旦用户除去与某些 EditPart 对应的模型对象,就丢弃这些 EditPart。如果用户撤销了一个删除操作,那么用于表示被恢复对象而重新创建的 EditPart 与原先的 EditPart 是不同的。这就是为什么 EditPart 不能包含长期信息,以及为什么不应由命令引用的原因。

您的第一个 EditPart:内容 EditPart
您编写的第一个 EditPart 是对应于图本身的 EditPart。这个 EditPart 称为查看器的 内容。它对应于模型中最顶部的元素,并且其父元素为查看器的 根EditPart(请参阅图 4)。根通过提供各种图形层(例如连接层和句柄层等)以及可能会在查看器级别提供的视图缩放或其它功能,为内容打下基础。请注意,根的功能不依赖于任何模型对象,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.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot