WEB开发网
开发学院软件开发Java 一种基于 EMF 模型的在 GEF 中判断创建连接线有效... 阅读

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

 2010-04-02 00:00:00 来源:WEB开发网   
核心提示: 查看原图(大图)我们定义连接线代表的关联关系是:连接线发起端和目的端的模型分别对应的标签符合 Schema 中的定义, 假如现在有四个图形分别对应着模型 A、B1、B2 和 B3,一种基于 EMF 模型的在 GEF 中判断创建连接线有效性的方法(5), 如果在它们之间建立连接线的时候,想让连接线

查看原图(大图)

我们定义连接线代表的关联关系是:连接线发起端和目的端的模型分别对应的标签符合 Schema 中的定义。 假如现在有四个图形分别对应着模型 A、B1、B2 和 B3。 如果在它们之间建立连接线的时候,想让连接线目的端模型 B1 作为发起端模型 A 的子模型,即后台保存的 XMI 文档中,B1 对应的标签是作为子标签嵌套在 A 对应标签里的,这时就需要用Schema 验证该 XMI 文档的合法性。现在想在创建连接线的时候进行动态的验证,即如果连接线发现目的端和发起端对应的模型不符合 Schema 中的定义时,该连接线就不被创建。由于B3 不是 A 的元素,所以在 A 和 B3 之间创建连接线时该连接线就不能创建,如图5所示。

图 5. A 和 B3 不允许建立连接

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

图4 Schema 文件中复杂类型 A 对应的模型生成的 Java 类中有 interface AType 和 class ATypeImpl(此处为真实的类名)。当规定元素 B1 的最大出现次数为1的话,则在 interface AType 和 class ATypeImpl 中会有相应的 void setB1(B1Type) 和 B1 getB1( ) 方法;若元素B2 的最大出现次数不限的话,则在 interface AType 和 class ATypeImpl 中会有相应的 EList getB2( )方法。

另外,类型 A 里面包含了元素 sourceConn 和 targetConn。 在 interface AType 和 class ATypeImpl 中会有 EList getSourceConn( ) 和 EList getTargetConn( ) 方法。这两个方法是为了维护从 A 出发或者结束到 A 的连接线。

上一页  1 2 3 4 5 6  下一页

Tags:基于 EMF 模型

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接