Wiki source code of Graphical Editors with Graphiti
Version 5.1 by msp on 2012/11/06 13:05
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | This tutorial will introduce another kind of concrete syntax for your models, namely a graphical syntax. Instead of writing models in a textual format, they are created by dragging elements from a palette into a two-dimensional plane. The framework we will employ here is [[Graphiti>>url:http://www.eclipse.org/graphiti/||shape="rect"]], which is based on the [[Graphical Editing Framework>>url:http://www.eclipse.org/gef/||shape="rect"]]. | ||
| 2 | |||
| 3 | === Contents === | ||
| 4 | |||
| 5 | |||
| 6 | |||
| 7 | {{toc maxLevel="2"/}} | ||
| 8 | |||
| 9 | = Defining the Diagram Type = | ||
| 10 | |||
| 11 | The main documentation of Graphiti is found in the [[Eclipse online help>>url:http://help.eclipse.org/juno/nav/23||shape="rect"]], which is also found in the Eclipse application (//Help// → //Help Contents//). If you don't have Graphiti yet, install it from the Juno release update site, //Modeling// category. | ||
| 12 | |||
| 13 | 1. Read the [[Graphiti Introduction>>url:http://help.eclipse.org/juno/topic/org.eclipse.graphiti.doc/resources/docu/gfw/graphiti-introduction.htm?cp=23_0_0||shape="rect"]]. | ||
| 14 | 1. Create a new plugin named de.cau.cs.rtprak.login.turing.graphiti (like in previous tutorials, replace "login" by your login name) and add dependencies to the following plugins:\\ | ||
| 15 | 1*. org.eclipse.graphiti | ||
| 16 | 1*. org.eclipse.graphiti.ui | ||
| 17 | 1. Create a class {{code language="none"}}TuringDiagramTypeProvider{{/code}} with superclass {{code language="none"}}org.eclipse.graphiti.dt.AbstractDiagramTypeProvider{{/code}}. | ||
| 18 | 1. Open {{code language="none"}}plugin.xml{{/code}} and create an extension for org.eclipse.graphiti.ui.diagramTypes with a //diagramType// element:\\ | ||
| 19 | 1*. //id: //de.cau.cs.rtprak.TuringDiagramType | ||
| 20 | 1*. //type: //turing | ||
| 21 | 1*. //name: //Turing Diagram Type | ||
| 22 | 1. Create an extension for org.eclipse.graphiti.ui.diagramTypeProviders with a //diagramTypeProvider// element:\\ | ||
| 23 | 1*. //id~:// de.cau.cs.rtprak.login.TuringDiagramTypeProvider | ||
| 24 | 1*. //name~:// Turing Diagram | ||
| 25 | 1*. //class~:// name of the {{code language="none"}}TuringDiagramTypeProvider{{/code}} class | ||
| 26 | 1. Add a //diagramType// element to the //diagramTypeProvider// with id de.cau.cs.rtprak.TuringDiagramType. | ||
| 27 | 1. Create a class {{code language="none"}}TuringFeatureProvider{{/code}} with superclass {{code language="none"}}org.eclipse.graphiti.ui.features.DefaultFeatureProvider{{/code}}. | ||
| 28 | 1. ((( | ||
| 29 | Add the following constructor to {{code language="none"}}TuringDiagramTypeProvider{{/code}}: | ||
| 30 | |||
| 31 | {{code theme="Eclipse" language="java"}} | ||
| 32 | /** | ||
| 33 | * Create a Turing diagram type provider. | ||
| 34 | */ | ||
| 35 | public TuringDiagramTypeProvider() { | ||
| 36 | setFeatureProvider(new TuringFeatureProvider(this)); | ||
| 37 | } | ||
| 38 | {{/code}} | ||
| 39 | ))) |