Graphiti Introduction

 

Goal

 

The goal of Graphiti is to support the fast and easy creation of unified graphical editors, which can display and edit an underlying domain model using a defined graphical notation.

Typical examples are class diagram editors (using the UML notation) or process flow editors (using the BPMN notation).

 

Figure: Example screenshot of a class diagram editor

Figure: Example screenshot of a process flow editor

 

Architecture

 

The graphical representation of the domain model itself is also a model, which contains model-elements like “rectangle”, “text” and “connection”. This allows separating each graphical editor into the following parts:

1.      The transformation from the domain model to the graphical model (for viewing) and vice versa (for editing). This includes the definition of a visualization-platform independent interaction behavior for the graphical model, e.g. the definition how to create and resize the figures and which context-menus and toolbars are available.

o       This part is dependent on the specific domain model and graphical notation, so it has to be implemented by the customers of the Graphiti for each graphical editor. On the other hand, this part is independent from the visualization-platform, where the rendering of the graphical model is done.

o       Note, that the graphical model is based on EMF. Currently it works best, if the domain model is based on EMF, too, but it can also be based on other modeling technologies.

2.      The rendering of the graphical model on a specific visualization-platform and the mapping between the visualization-platform specific interaction (e.g. mouse-events) and the defined platform independent interaction.

o       This part is dependent on the visualization-platform, but it is independent of the specific domain model and graphical notation. Therefore it can be completely provided by the Graphiti. The customers have the possibility to also add visualization-platform specific implementations at a few places, but this is not recommended, because it prevents the rendering of the same diagram on different platforms.

o       Note, that currently only the rendering for one visualization-platform is implemented by the Graphiti: Eclipse using Draw2D and GEF.

 

 

 


Copyright (c) SAP AG 2005, 2010.