carbidecpp20devenv/plugins/org.eclipse.emf.cheatsheets_2.4.0.v200808251517/cheatsheets/GenerateEMFFromJava.xml
author cawthron
Wed, 18 Mar 2009 17:21:00 -0500
changeset 1 82d1d1de1a01
permissions -rw-r--r--
import Carbide.c++
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     1
<?xml version="1.0" encoding="UTF-8" ?>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     2
<cheatsheet title="Generating an EMF Model from Annotated Java">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     3
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     4
  <intro href="/org.eclipse.emf.doc/tutorials/clibmod/clibmod.html">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     5
    <description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     6
      This cheat sheet is a step-by-step description of how to generate an EMF
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     7
      model and editor from a set of annotated Java interfaces.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     8
    </description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     9
  </intro>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    10
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    11
  <item title="Set up the environment">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    12
  	<description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    13
  	  Your environment must be set up before you can perform the steps in this cheat sheet.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    14
  	  <br /><br />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    15
  	  Delete or rename the following projects if they exist in your workspace: &quot;library.java&quot;, &quot;library.java.edit&quot;, &quot;library.java.editor&quot;.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    16
  	</description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    17
  </item>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    18
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    19
  <item title="Create an empty EMF project"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    20
    href="/org.eclipse.emf.doc/tutorials/clibmod/clibmod.html#newEmptyEMFProj"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    21
    dialog="true"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    22
    skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    23
    <description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    24
      First, you must create a new &quot;library.java&quot; empty EMF project to house the annotated Java.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    25
    </description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    26
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    27
    <subitem label="Select &quot;File &gt;New &gt;Project...&quot;. Expand &quot;Eclipse Modeling Framework&quot;, select &quot;Empty EMF Project&quot; and click &quot;Next&quot;." skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    28
      <action
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    29
        pluginId="org.eclipse.emf.cheatsheets"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    30
        class="org.eclipse.emf.cheatsheets.actions.OpenEmptyEMFProjectWizardAction"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    31
        param1="library.java"  
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    32
        translate="" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    33
    </subitem>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    34
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    35
    <subitem label="Enter &quot;library.java&quot; as the &quot;Project name&quot;, then click &quot;Finish&quot;." skip="false" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    36
  </item>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    37
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    38
  <item title="Create Java interfaces and class"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    39
    href="/org.eclipse.emf.doc/tutorials/clibmod/clibmod.html#step1b"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    40
    dialog="true"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    41
    skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    42
    <description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    43
      Create the interfaces and class in the &quot;library.java&quot; project that describe the model.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    44
      The model consists of three interfaces (&quot;Library&quot;, &quot;Writer&quot;, and &quot;Book&quot;) and
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    45
      a class (&quot;BookCategory&quot;), all in the &quot;org.eclipse.example.library&quot; package.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    46
      <br /><br />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    47
      You can click on (?) to see the contents of the interfaces and class.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    48
    </description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    49
    <subitem label="Create the Library interface." skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    50
      <action
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    51
        pluginId="org.eclipse.emf.cheatsheets"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    52
        class="org.eclipse.emf.cheatsheets.actions.CopyFileFromPluginAction"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    53
        param1="library.java"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    54
        param2="org.eclipse.example.library"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    55
        param3="org.eclipse.emf.cheatsheets/archive/java/Library.java" 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    56
        translate="" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    57
    </subitem>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    58
    <subitem label="Create the Writer interface." skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    59
      <action
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    60
        pluginId="org.eclipse.emf.cheatsheets"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    61
        class="org.eclipse.emf.cheatsheets.actions.CopyFileFromPluginAction"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    62
        param1="library.java"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    63
        param2="org.eclipse.example.library"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    64
        param3="org.eclipse.emf.cheatsheets/archive/java/Writer.java" 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    65
        translate="" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    66
    </subitem>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    67
    <subitem label="Create the Book interface." skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    68
      <action
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    69
        pluginId="org.eclipse.emf.cheatsheets"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    70
        class="org.eclipse.emf.cheatsheets.actions.CopyFileFromPluginAction"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    71
        param1="library.java"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    72
        param2="org.eclipse.example.library"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    73
        param3="org.eclipse.emf.cheatsheets/archive/java/Book.java" 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    74
        translate="" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    75
    </subitem>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    76
    <subitem label="Create the BookCategory class." skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    77
      <action
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    78
        pluginId="org.eclipse.emf.cheatsheets"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    79
        class="org.eclipse.emf.cheatsheets.actions.CopyFileFromPluginAction"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    80
        param1="library.java"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    81
        param2="org.eclipse.example.library"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    82
        param3="org.eclipse.emf.cheatsheets/archive/java/BookCategory.java" 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    83
        translate="" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    84
    </subitem>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    85
  </item>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    86
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    87
  <item title="Create the EMF model"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    88
    href="/org.eclipse.emf.doc/tutorials/clibmod/clibmod.html#newEMFModJava"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    89
    dialog="true"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    90
    skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    91
    <description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    92
      Create an EMF model from the annotated Java.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    93
    </description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    94
    <subitem label="In the package explorer, right-click the &quot;library.java/model&quot; folder and select &quot;New &gt; Other...&quot; from the pop-up menu. Then, expand &quot;Eclipse Modeling Framework&quot;, select &quot;EMF Model&quot; and click &quot;Next&quot;." skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    95
      <action
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    96
        pluginId="org.eclipse.emf.cheatsheets"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    97
        class="org.eclipse.emf.cheatsheets.actions.OpenEMFModelWizardAction"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    98
        param1="library.java/model/library.genmodel"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    99
        param2="org.eclipse.emf.importer.java" 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   100
        translate="" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   101
    </subitem>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   102
    <subitem label="Enter &quot;library.genmodel&quot; as the file name, then click &quot;Next&quot;." skip="false" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   103
    <subitem label="Select &quot;Annotated Java&quot;, then click &quot;Next&quot;." skip="false" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   104
    <subitem label="Select the &quot;org.eclipse.example.library&quot; package, then click &quot;Finish&quot;." skip="false" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   105
  </item>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   106
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   107
  <item
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   108
    title="Generate the code"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   109
    href="/org.eclipse.emf.doc/tutorials/clibmod/clibmod.html#step2"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   110
    dialog="true"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   111
    skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   112
    <description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   113
      Generate the code to implement the model and an editor for it. The generator is automatically opened on completion of the wizard in the previous step.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   114
    </description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   115
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   116
    <repeated-subitem values="Model,Edit,Editor">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   117
      <subitem label="In the generator, right click on &quot;Library&quot; and select &quot;Generate ${this} Code&quot;." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   118
    </repeated-subitem>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   119
    <subitem label="If automatic building has been disabled, select &quot;Project &gt; Build All&quot; to compile the generated code." skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   120
      <action
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   121
        pluginId="org.eclipse.emf.cheatsheets"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   122
        class="org.eclipse.emf.cheatsheets.actions.BuildAllProjectsAction" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   123
    </subitem>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   124
    <subitem label="Select the &quot;library.java&quot; project in the package explorer and invoke &quot;Source &gt; Organize Imports&quot; to remove unused imports." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   125
  </item>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   126
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   127
  <item
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   128
    title="Run the generated editor"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   129
    href="/org.eclipse.emf.doc/tutorials/clibmod/clibmod.html#step4"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   130
    dialog="true"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   131
    skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   132
    <description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   133
      Now, you are set to run the generated editor and create a new library instance.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   134
    </description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   135
    <onCompletion>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   136
      Congratulations! You have succesfully created an EMF model from annotated Java interfaces, generated the code, and created an instance of the model.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   137
    </onCompletion> 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   138
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   139
    <subitem label="Select the &quot;library.java&quot; project in the package explorer and invoke the &quot;Run &gt; Run As &gt; Eclipse Application&quot; menu item. This starts a runtime instance of Eclipse with the newly generated plug-ins available." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   140
    <subitem label="In the runtime instance, create a new general project called &quot;librarytest&quot;." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   141
    <subitem label="Right click &quot;librarytest&quot; and select &quot;New &gt; Other...&quot;." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   142
    <subitem label="Expand &quot;Example EMF Model Creation Wizards&quot; and select &quot;Library Model&quot;. Then, click &quot;Next&quot;." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   143
    <subitem label="Enter &quot;My.library&quot; as the file name, then click &quot;Next&quot;." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   144
    <subitem label="Select &quot;Library&quot;; as the model object, then click &quot;Finish&quot;." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   145
    <subitem label="The generated library editor is opened. Expand &quot;platform:/resource/librarytest/My.library&quot;. Right click &quot;Library&quot; and select &quot;New Child &gt; Writer&quot; to create a writer object in the library." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   146
    <subitem label="Create additional writers and books in the library, and edit the objects' properties in the properties view." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   147
    <subitem label="Select &quot;File > Save&quot; to save the instance." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   148
  </item>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
   149
</cheatsheet>