`
findhappy7
  • 浏览: 9988 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

中国式的emf(gef)建模,带来的问题

XML 
阅读更多
中国式的emf(gef)建模,带来的问题,,以下是中国式的建模
---------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<action:Diagram xmlns:action="http://www.j.com/action">
  <logic name="业务逻辑1" description="" location="Point(290, 76)" size="Dimension(150, 40)" logicClass="">
    <link to="//@logic.1"/>
    <link to="//@logic.2"/>
  </logic>
  <logic name="业务逻辑2" description="" location="Point(278, 273)" size="Dimension(150, 40)" logicClass=""/>
  <logic name="业务逻辑" description="" location="Point(61, 263)" size="Dimension(150, 40)" logicClass=""/>
</action:Diagram>
----------------------
从模型看是很票啦的,<link to="//@logic.1"/>指向<logic name="业务逻辑2" description="" location="Point(278, 273)"

但到了gef编码的时候,就容易出现编码了,因为你在建立连线的时候,在命令里面一般是这样实现:
link = ActionFactory.eINSTANCE.createLink();
link.setTo(target);
source.getLink().add(link);

注意这里,只是设置source.getLink().add(link); 就可以满足模型的需求了,当代码执行到source.getLink().add(link);的时候,就会出发souce这个监听器,,然后就是刷新连接,
但这个刷新连接都是source刷新,就算你执行了refreshTargetConnections也没用,因为这个执行的的对象是source对象editpart,而不是taget,,

那怎样触发taget所对应的editpart刷新呢?

如果你看一些经典的例子,你会发现别人的连线命令是这样:
source.getOutgoingConnections().add(connection);
target.getIncomingConnections().add(connection);

学别人,就在画线命令里面多加一项对taget模型的改动代码即可,,
例如:target.setId(target.getId()); 就是拿些无关重要的熟悉(最好是少被操作的属性)重置下值,既可以触发和source一样的动作,,也会走到notifyChanged方法上面去,然后多加一个判断:
case ActionPackage.NODE__ID:
refreshTargetConnections();
break;

即可。
感觉模型文件(指生成的结果那个,例如上面那个)和代码,不能都那么完美,要么,把中国式的模型改改,这样代码就没那么别扭,要么就类似我的做法。
分享到:
评论

相关推荐

    eclipse emf&gef

    Eclipse EMF与GEF是两个非常强大的工具,它们分别解决了模型定义和图形化编辑的问题。通过这两者的结合使用,可以极大地提高开发效率,特别是在开发复杂的基于模型的应用程序时。无论是初学者还是有经验的开发者,都...

    EMF、GEF、VE 适合于Eclipse 3.2.0

    EMF(Eclipse Modeling Framework)、GEF(Graphical Editing Framework)和VE(Visual Editor)是Eclipse平台上用于构建图形化建模和编辑工具的关键技术。这些框架为开发人员提供了强大的工具,使他们能够轻松地...

    EMF_GEF_入门系列

    EMF(Eclipse Modeling Framework)和GEF(Graphical Editing Framework)是两个在Java开发环境中广泛使用的开源框架,尤其在创建图形用户界面和建模工具方面。本入门系列旨在帮助初学者快速理解并掌握这两个强大的...

    EMF+GEF+VE

    通过将EMF用于数据建模,GEF用于图形化界面,以及VE用于视图编辑,开发者可以构建出高效、灵活的GIS应用。这种结合不仅简化了开发流程,还提高了代码的可维护性和复用性,使得ArcGIS的二次开发变得更加高效和便捷。...

    GEF快速入门教程和EMF教程

    ### GEF快速入门教程与EMF教程概览 #### GEF HelloWorld 示例详解 本文将详细介绍如何使用Graphical Editing Framework (GEF)实现一个简单的“Hello World”示例,并结合Eclipse Modeling Framework (EMF)进行扩展...

    GEF EMF GMF 资源

    GEF Example source code 博文链接:https://jamesblog.iteye.com/blog/148279

    Eclipse开发使用GEF和EMF(IBM 红皮书)中英文对照版

    《Eclipse开发使用GEF和EMF》是IBM红皮书系列中的一部经典著作,主要探讨了如何在Eclipse环境中利用GEF(图形编辑框架)和EMF( Eclipse模型框架)进行图形化应用程序的开发。这两项技术是Eclipse平台上的核心组件,...

    emf swt runtime gef

    EMF 提供了一种方法来定义和操作数据模型,允许开发者以声明式的方式定义模型结构,并能自动生成Java类和持久化代码。这使得开发人员可以专注于业务逻辑,而不是底层的数据存储和表示。EMF 还支持模型之间的转换,...

    eclipse中emf,gef,ve的安装

    ### Eclipse中EMF, GEF, VE的安装详解 #### 一、Eclipse环境搭建 在开始介绍如何在Eclipse中安装EMF (Eclipse Modeling Framework)、GEF (Graphical Editing Framework) 和 VE (Visual Editor) 这三个重要的插件...

    eclipse 3.3 emf 2.20 gef 3.2 ve 1.2

    结合这些组件,开发者可以利用Eclipse 3.3,EMF 2.20,GEF 3.2和VE 1.2来构建强大的模型驱动和图形化的应用程序,这些应用程序不仅具有丰富的用户界面,还能处理复杂的模型数据。通过EMF,开发者可以定义和操作数据...

    eclipse 图像界面设计 VE插件 (包含所需emf,gef)及安装教程

    EMF提供了模型到代码的自动转换,简化了数据建模和软件开发过程。而GEF则是Eclipse的图形编辑框架,主要用于构建图形用户界面(GUI)编辑器,它为创建可自定义的图形编辑器提供了基础结构。 VE插件,全称为Visual ...

    Eclipse-EMF-GEF资料.rar

    Eclipse-EMF-GEF 是一套用于构建图形化用户界面和模型驱动开发的强大工具集。这个压缩包包含了关于这三个关键技术的各种参考资料,帮助开发者深入理解并应用它们。 1. **Eclipse-EMF (Eclipse Modeling Framework)*...

    Eclipse安装可视化Visual Editor 的操作以及所需插件1(EMF,GEF)

    好了,准备工作完成后我们就开始安装了,大家看我是怎么安装的,我的eclipse是安装在D:\Eclipse目录下的,我在Eclipse文件夹下面建了三个文件夹,分别命名问EMF,GEF,VE_SDK,现在我们要做的就是把我们刚刚下载下来...

    emf-gef-ve.7z

    综上所述,"emf-gef-ve.7z"这个压缩包可能包含了一个基于Eclipse的图形化建模和编辑环境的实现,利用EMF作为数据模型,GEF作为图形编辑框架,可能还包括了VE的一些遗留资源。这些工具和技术对于软件开发者,尤其是...

    emf2.4.2+gef3.4.2+ve1.5.0+中语言文包

    标题中的"emf2.4.2+gef3.4.2+ve1.5.0+中语言文包"代表了三个核心组件及其对应的版本和一个中文语言包,这些都是针对Java开发环境中的特定工具。EMF(Eclipse Modeling Framework)、GEF(Graphical Editing ...

    适用于eclipse3.5的VE1.4插件+emf+GEF

    GEF提供了一组基础类和工具,可以帮助开发者快速创建出交互式的图形编辑界面,与EMF结合使用,能够实现强大的可视化建模功能。 5. **安装过程**:在安装VE1.4插件之前,首先需要安装EMF和GEF。这通常通过Eclipse的...

    lomboz-emf-gef-jem-3.1RC2.zip

    在压缩包内的“eclipse”文件很可能是一个定制版的Eclipse IDE,预装了Lomboz、EMF、GEF和JEM等相关插件,为开发者提供了一站式的Java Web开发环境。使用者无需额外安装或配置,可以直接利用这个集成环境进行JSP页面...

    win--eclipse3.4.2 安装VE插件所需插件(emf, gef ,ve)

    "win-eclipse3.4.2 安装VE插件所需插件(emf, gef, ve)"这个主题主要涉及到Eclipse中的三个关键插件:EMF( Eclipse Modeling Framework)、GEF(Graphical Editing Framework)和VE(Visual Editor)。 EMF是...

Global site tag (gtag.js) - Google Analytics