Child pages
  • Graphical Modeling with Graphiti
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

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, which is based on the Graphical Editing Framework.

Contents

Defining the Diagram Type

The main documentation of Graphiti is found in the Eclipse online help, 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.

  1. Read the Graphiti Introduction.
  2. 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:
    • org.eclipse.graphiti
    • org.eclipse.graphiti.ui
  3. Create a class TuringDiagramTypeProvider with superclass org.eclipse.graphiti.dt.AbstractDiagramTypeProvider.
  4. Open plugin.xml and create an extension for org.eclipse.graphiti.ui.diagramTypes with a diagramType element:
    • id: de.cau.cs.rtprak.TuringDiagramType
    • type: turing
    • name: Turing Diagram Type
  5. Create an extension for org.eclipse.graphiti.ui.diagramTypeProviders with a diagramTypeProvider element:
    • id: de.cau.cs.rtprak.login.TuringDiagramTypeProvider
    • name: Turing Diagram
    • class: name of the TuringDiagramTypeProvider class
  6. Add a diagramType element to the diagramTypeProvider with id de.cau.cs.rtprak.TuringDiagramType.
  7. Create a class TuringFeatureProvider with superclass org.eclipse.graphiti.ui.features.DefaultFeatureProvider.
  8. Add the following constructor to TuringDiagramTypeProvider:

    /**
     * Create a Turing diagram type provider.
     */
    public TuringDiagramTypeProvider() {
        setFeatureProvider(new TuringFeatureProvider(this));
    }
  • No labels