Automatic Layout for Complex Diagrams Is Coming to Eclipse
Graphical editors are a popular means to visualize concepts and architectures through the design of a diagram. More and more solutions follow this approach, among them Papyrus, Sirius, or Capella. However, for diagrams to be useful, their elements have to be carefully positioned. Only then do they convey their intended meaning quickly and accurately.
While critical, positioning the elements manually is a very time-consuming and complex task that involves systematic compliance with the syntactical constraints of the diagram. The Eclipse Layout Kernel (ELK) project aims to free the user from this burden by providing highly customizable and sophisticated layout features.
How it works
ELK relies on a robust data structure to represent graphs and annotate them with layout configuration information. It provides an infrastructure to connect automatic layout algorithms to Eclipse-based graphical editors. Default connections for GMF- and Graphiti-based often work for editors with little need for customization.
- Automatic layout integration in your editor
- Arbitrarily complex layout operations and configurations (from automated/default to manual/custom)
- Numerous layout options (spacing, alignment, margins, edge routing, edge label placement, port placement, size constraints, ...)
- Set of pre-defined algorithms (layered, tree, force, ...) and integrated external layout libraries (OGDF, Graphviz)
This presentation will introduce the Eclipse Layout Kernel and explain the usual steps to enable automatic layout for your editor through the use of a simple Java API:
- An overview of available layout algorithms
- Out-of-the-box editor support for GMF
- How to configure automatic layout to your needs
- Examples of what people do with automatic layout
ELK proves to be useful in several use cases, such as the automatic generation of diagrams or tidying up existing diagrams. ELK is still in its early stages. Its predecessor, KIELER Layout, is still available until the first version of ELK is released.