DiaGen is a system for easy developing of powerful diagram editors. It consists of two main parts:
- A framework of Java classes that provide generic functionality for editing and analyzing diagrams.
- A GUI tool (the
DiaGen designer) for specifying the diagram language and automatically generating a visual editor from this
The combination of the following main features distinguishes
DiaGen from other existing diagram editing/analysis systems:
DiaGen editors include an analysis module to recognize the structure and syntactic correctness of diagrams
on-line during the editing process. The structural analysis is based on hypergraph transformations and grammars,
which provide a flexible syntactic model and allow for efficient parsing.
DiaGen has been specially designed for fault-tolerant parsing and handling of diagrams that are only partially
DiaGen uses the structural analysis results to provide syntactic highlighting and an interactive automatic
layout facility. The layout mechanism is based on flexible geometric constraints and relies on an external constraint-solving
DiaGen combines free-hand editing in the manner of a drawing program with syntax-directed editing for major
structural modifications of the diagram. The language implementor can therefore easily supply powerful syntax-oriented
operations to support frequent editing tasks, but she does not have to worry about explicitly considering every
editing requirement that may arise.
DiaGen is entirely written in Java and is based on
(Version 6 is required). It is therefore platform-independent and can take full advantage of all the features
of the Java2D graphics API: For example,
DiaGen supports unrestricted zooming, and rendering quality is adjusted automatically during user interactions.
DiaGen uses hypergraph grammars to specify diagram languages. While this approach is powerful and its theory
is very clear, it is hard for the unexperienced user to model an editor. A very common solution to this problem is
meta-modeling, which is used by
DiaMeta allows to use meta models instead of grammars to specify visual languages. The current implementation
Eclipse Modeling Framework (EMF). Additionally, support for MOF (via
MOFLON) is currently added. Editors generated by
DiaMeta have the same benefits as those generated by
DiaGen, and they show a similar behaviour like