EMF Demo

简介: <h2>Install EMF Plugin of Eclipse</h2> <div>Ecore Diagram Editor<br></div> <div><br></div> <h2>Create EMF Project</h2> <div>Take "Empty EMF Project" for instance</div> <div><img src="http:/

Install EMF Plugin of Eclipse

Ecore Diagram Editor

Create EMF Project

Take "Empty EMF Project" for instance

Create Ecore Model

New "Ecore Model" under folder "model"

Create "EPackage", "EInterface", "EClass", "EEnum"

Create "EReference", "EAttribute", "EOperation"


Open With "XML Editor"
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="fruit" nsURI="http:///fruit.ecore" nsPrefix="fruit">
  <eClassifiers xsi:type="ecore:EClass" name="Fruit" abstract="true" interface="true">
    <eOperations name="grow">
      <eParameters name="years" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
    </eOperations>
    <eOperations name="harvest" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject">
      <eParameters name="amount" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="weight" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Apple" eSuperTypes="#//Fruit">
    <eOperations name="appleColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="color" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Pear" eSuperTypes="#//Fruit">
    <eOperations name="pearWater" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="water" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Factory">
    <eOperations name="create" eType="#//Fruit">
      <eParameters name="fruitKind" eType="#//FruitKind"/>
    </eOperations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="FruitKind">
    <eLiterals name="APPLE" value="1"/>
    <eLiterals name="PEAR" value="2"/>
    <eLiterals name="PEACH" value="3"/>
  </eClassifiers>
</ecore:EPackage>

Create EMF Generator Model

New "EMF Generator Model" via loading above "Ecore Model" file

Open With "EMF Generator"


Generate Model Code

Select "generate * Code"



After do "Generate Model Code", you can see model code as below:


Install UML Plugin of Eclipse

UML Designer

Export UML Model

Click "Export Model..."


Choose "UML model"


Finally you can see UML Model file as below:

Generate Ecore Diagram

Right click "Initialize Ecore Diagram..."



Select a representation type



Select a semantic element


Select all and navigate to class diagram



Add Related Elements



Select all Related Elements



Layout Diagram



Finally you can see diagram as below:

Export diagram as image



相关文章
|
9月前
|
Web App开发 前端开发 Java
SpringBoot 的项目helloworld--JSB系列之002
SpringBoot 的项目helloworld--JSB系列之002
|
Web App开发 移动开发 JavaScript
Cocos2d-x Editor Build WIth Qt/Web
Cocos2d-x Editor Build WIth Qt/Web
122 0
|
XML 数据格式 开发者
Appium问题解决方案(4)- Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException
Appium问题解决方案(4)- Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException
345 0
Appium问题解决方案(4)- Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException
|
Java
图片上传接口 (alipay.offline.material.image.upload)JAVA版本demo
说明:       该接口一般结合口碑开店接口使用,官方文档:[url]https://docs.open.alipay.com/common/105258[/url]       以及结合会员卡中的上传背景图片等联合使用 调用代码示例: //上传门店照片接口(alipay.
1225 0
|
Web App开发 前端开发
EMF介绍系列(六、自定义命令)
EMF生成的应用程序里,用户的发出的每一条命令都是可以撤销(Undo)的,例如修改了产品的价格,按一下撤销按钮就能恢复原来的价格,当然还可 以通过重做(Redo)再回到新的价格。为了实现这个功能,应用程序里维护了一个用于存放命令的类似栈的数据结构(CommandStack),每一条执 行过的命令都被存放在那里,需要撤销时取出最近一条命令进行撤销。
1394 0
|
Java Android开发 数据格式
[Eclipse]GEF入门系列(八、使用EMF构造GEF的模型)
GEF的设计没有对模型部分做任何限制,也就是说,我们可以任意构造自己的模型,唯一须要保证的就是模型具有某种消息机制,以便在发生变化时能够通 知GEF(通过EditPart)。在以前的几个例子里,我们都是利用java.beans包中的PropertyChangeSupport和 PropertyChangeListener来实现消息机制的,这里将介绍一下如何让GEF利用EMF构造的模型(下载例子,可编辑.emfsubject文件,请对比之前功能相同的非EMF例子),假设你对EMF是什么已经有所了解。
1468 0

热门文章

最新文章