Extending the Structure Editor: Difference between revisions
| imported>Son | imported>Jrloria No edit summary | ||
| (5 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| The "edit" view is mainly a tree with elements as nodes and attributes as value for nodes. | |||
| The Extension Point is org.eventb.ui.editorItems | |||
| So, each new internal element should be map to a "element" (=configuration of the display). After elements should be placed in the tree with a childRelation (=where the element appear) and each attribute of the internal element should be placed with a attributeRelation (=where the attribut appear) | |||
| ===Example === | |||
| Below an example defining something like an invariant | |||
|   <extension | |||
|          point="org.eventb.ui.editorItems"> | |||
|     <element | |||
|             defaultColumn="1" | |||
|             prefix="LABEL IN THE EDIT VIEW" | |||
|             typeId="com.yourOffice.pluginName.elementName"> | |||
|     </element> | |||
|       <childRelation | |||
|             parentTypeId="org.eventb.core.machineFile"> | |||
|          <childType | |||
|                typeId="com.yourOffice.pluginName.elementName" | |||
|                priority="40"> | |||
|          </childType> | |||
|      </childRelation> | |||
|      <attributeRelation | |||
|             elementTypeId="com.yourOffice.pluginName.elementName"> | |||
|          <attributeReference | |||
|                column="0" | |||
|                descriptionId="org.eventb.ui.label"> | |||
|          </attributeReference> | |||
|          <attributeReference | |||
|                column="1" | |||
|                descriptionId="org.eventb.ui.predicate"> | |||
|          </attributeReference> | |||
|          <attributeReference | |||
|                descriptionId="org.eventb.ui.isTheorem"> | |||
|          </attributeReference> | |||
|          <attributeReference | |||
|                descriptionId="org.eventb.ui.comment"> | |||
|          </attributeReference> | |||
|     </attributeRelation> | |||
|       <autoNaming | |||
|               attributeDescriptionId="org.eventb.ui.identifier" | |||
|               elementTypeId="com.yourOffice.pluginName.elementName" | |||
|               namePrefix="foo"> | |||
|         </autoNaming> | |||
|    </extension> | |||
| === Adding a New Element === | === Adding a New Element === | ||
| === Adding a New Attribute === | === Adding a New Attribute === | ||
| The extension point <code>org.rodinp.core.attributeTypes</code> is used to declare a new displaying/editing a new attribute in the Structure Editor. There are two steps for doing this: first, '''How the attribute is going to be displayed/edited''' and second, '''the relationship between the attribute and internal elements'''. | |||
| ==== How the attribute is going to be displayed/edited ==== | ==== How the attribute is going to be displayed/edited ==== | ||
| ==== The relationship between the attribute and  | ==== The relationship between the attribute and internal elements ==== | ||
| [[Category:Developer documentation]] | |||
Latest revision as of 09:45, 18 May 2010
The "edit" view is mainly a tree with elements as nodes and attributes as value for nodes. The Extension Point is org.eventb.ui.editorItems So, each new internal element should be map to a "element" (=configuration of the display). After elements should be placed in the tree with a childRelation (=where the element appear) and each attribute of the internal element should be placed with a attributeRelation (=where the attribut appear)
Example
Below an example defining something like an invariant
 <extension
        point="org.eventb.ui.editorItems">
   <element
           defaultColumn="1"
           prefix="LABEL IN THE EDIT VIEW"
           typeId="com.yourOffice.pluginName.elementName">
   </element>
     <childRelation
           parentTypeId="org.eventb.core.machineFile">
        <childType
              typeId="com.yourOffice.pluginName.elementName"
              priority="40">
        </childType>
    </childRelation>
    <attributeRelation
           elementTypeId="com.yourOffice.pluginName.elementName">
        <attributeReference
              column="0"
              descriptionId="org.eventb.ui.label">
        </attributeReference>
        <attributeReference
              column="1"
              descriptionId="org.eventb.ui.predicate">
        </attributeReference>
        <attributeReference
              descriptionId="org.eventb.ui.isTheorem">
        </attributeReference>
        <attributeReference
              descriptionId="org.eventb.ui.comment">
        </attributeReference>
   </attributeRelation>
     <autoNaming
             attributeDescriptionId="org.eventb.ui.identifier"
             elementTypeId="com.yourOffice.pluginName.elementName"
             namePrefix="foo">
       </autoNaming>
  </extension>
Adding a New Element
Adding a New Attribute
The extension point org.rodinp.core.attributeTypes is used to declare a new displaying/editing a new attribute in the Structure Editor. There are two steps for doing this: first, How the attribute is going to be displayed/edited and second, the relationship between the attribute and internal elements.
