Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

EMF Editor goes RAP

Revision as of 09:39, 24 November 2007 by Reinhold.bihler.gmx.de (Talk | contribs) (Generating the Code)

How to turn an automatic generated EMF editor into an RAP application

The Simple Purchase Order Model

To generate the EMF editor we first need a Ecore model. We will use the Simple Purchase Order model (file SimplePO.ecore) that is also used in the EMF book. In an UML Editor this model looks as depicted below:

SimplePO.gif

The SimplePO.ecore file viewed in a text editor:

<?xml version="1.0" encoding="ASCII"?>
<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="po"
    nsURI="http:///com/example/po.ecore" nsPrefix="com.example.po">
  <eClassifiers xsi:type="ecore:EClass" name="PurchaseOrder">
    <eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
        eType="#//Item" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="shipTo" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="billTo" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Item">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="productName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="quantity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="price" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
  </eClassifiers>
</ecore:EPackage>

The Code Generation Model

To generate code from the SimplePO.ecore model we first need to create a corresponding code generation model (file SimplePO.genmodel) for storing the code generation customization data. Assumed you have all the EMF plugins installed in your Eclipse environment you can do this by a right click on the SimplePO.ecore file in the Package Explorer:

CreateGenModel1.gif

Select the EMF Model wizard:

CreateGenModel2.gif

Click the Next button two times:

CreateGenModel3.gif CreateGenModel4.gif

Press the Load button and the Next button afterwards:

CreateGenModel5.gif

A click on the Finish button finally creates the SimplePO.genmodel file.

CreateGenModel6.gif

The code generation model allows you to customize the code generation. E.g. the properties Model Directory, Editor Directory, and Edit Directory determine into which folder the model, editor and edit code is generated.

File:CodeGenerationPaths.gif

Generating the Code

To generate the code for the model, edit and editor plugin simply do a right click on the root element of the SimplePO.genmodel and select Generate All

GenerateCode.gif

Back to the top