The objectives of the Graphiti project are the following:
-
Provide an easy to use and well structured plain Java API for building graphical tools
-
Provide documentation and tutorials for doing so
-
Limit the dependencies of the framework to an absolute minimum to support RCP-like scenarios
-
Provide optional components beyond the RCP use case to ease e.g. IDE integration
-
Provide the ability to use any existing layout algorithms for auto layouting a diagram
As the Graphical Modeling Framework (GMF) already exists as a project targeting a similar objective, we distinguish Graphiti from GMF as follows:
Graphiti
GMF
Architectural Concept
runtime centric API
generative
API
self-contained
refers to GEF functionality
Client Logic
centralised (feature concept)
functionality distributed since there are no constraints
Look&Feel
sophisticated default Look&Feel defined by usability specialists (highly customisable according to the tool requirements)
simple default Look&Feel (highly customisable according to the tool requirements in generated coding)