快速业务通道

一种基于EMF模型的在GEF中判断创建连接线有效性的方法 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

一种基于EMF模型的在GEF中判断创建连接线有效性的方法

时间:2011-08-11 IBM 赵迎威

简介: 结合目前比较受欢迎的 EMF(Eclipse Modeling Framework)和 GEF(Graphical Editing Framework)技术,提出了一种在图形化开发中创建连接线时普遍适用的验证方法. 最后给出了一个创建 连接线时动态 Schema 验证的例子,并根据 Schema 的定义列出创建连接线的真值表。针对该真值表的每 项进行验证,保证不符合 Schema 定义规则的模型对应的图形之间不能创建连接线,降低了 Schema 验证 和修改的复杂性。

一种基于 EMF 模型的在 GEF 中判断创建连接线有效性的方法

在 Java 中进行图形化工具的开发传统的方法是直接使用 AWT 或者 Swing,这种方法在处理图形化开 发的细节上(图形的创建/删除、放大/缩小、拖放和撤销等)一般比较复杂;图形化设计和后台模型的对 应关系都需要开发者自己定义,没有统一的标准,这样很难进行维护;AWT 或者 Swing 开发的图形界面 跟 Windows 界面的风格不一致,让一直使用 Windows 的用户很难接受。 EMF 和 GEF 技术作为 Eclipse 工程的一部分,分别用来进行模型的代码生成和图形化工具的开发。其中 GEF 简化了对图形的处理,开 发人员不必把主要精力放在图形的处理上;提供了一个基于 MVC(Model-View-Controller)结构的图形 化开发框架,有效地维持了图形和模型之间的对应关系;基于SWT,图形的风格跟Windows的一样。因此, 采用 GEF 进行图形化开发可以提高开发效率的同时保证了可扩展性。

EMF 和 GEF 介绍

EMF

EMF 是一套 Java 的框架,可以用于创建基于结构化模型的工具和其他的应用程序。对于引入的面向 对象的模型,EMF 可以帮助你快速地将你的模型转换为高效、正确和容易定制的 Java 代码。 EMF 使用 的模型定义的标准格式是 XMI(XML Metadata Interchange),有四种方式可以将你自己创建的模型转换 为XMI格式:

使用文本或 XML 编辑器直接创建 XMI 文档;

将使用 Rational Rose 等建模工具创建的模型导出,生成 XMI 文档;

使用带有模型特征注释的 Java 接口;

使用 XML Schema 来描述模型的格式。

GEF

GEF 可以方便开发者从一个现成的模型来创建一个功能丰富的图形化编辑器,提供了一个基本框架来 构建多种应用,比如说:状态图、GUI 编辑器、类图编辑器和状态机等。 GEF 包含了两个插件: org.eclipse.draw2d 和org.eclipse.gef。 其中 org.eclipse.draw2d 为显示的图形提供了布局和描述 的工具集;org.eclipse.gef 使用了 MVC 的架构,提供了控制器(比如: EditPart )来操作各个模型和 视图。

GEF工作原理

GEF 采用的是 MVC 架构,其架构图如图1所示。GEF一般和 EMF 结合使用,EMF 负责生成模型。MVC 的各个部分都是树状结构的,并且是一一对应关系。其中 EditPart 充当控制器的角色,里面可以使用各 种 EditPolicy,而 EditPolicy 的具体实现有时需要调用 Command 工具集类;而通过 draw2d 绘制的图 形充当视图的角色。 具体的工作流程为:

EditPartFactory 会针对每个模型创建一个对应的EditPart;

在每个 EditPart 内部会创建与模型对应的视图,即显示的图形;

当模型的属性改变后,会通知 EditPart 它的属性变化情况;

EditPart 会根据模型属性的变化更新视图的显示;

一种基于EMF模型的在GEF中判断创建连接线有效性的方法(2)

时间:2011-08-11 IBM 赵迎威

当需要在模型间建立某种关联关系时,用 Command 在两个图形间建立一条连接线。该连接线也是一个 模型,所以针对该连接线的一些操作可以重复以上1)—4)步。

当图形化设计完后进行保存,后台调用的是 EMF 的保存机制,将各个模型和它们之间的关系保存成 EMF 自定义的 XMI 格式(各个模型保存时是并列

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号