Visual languages are popular for visualizing concepts and systems. However, just being graphical in nature does not automatically make a diagram easy to understand. Its usefulness much rather depends on the placement of its elements, that is: on its layout. Getting the layout right is labour intensive and time consuming and can be made a lot easier by making algorithms do the work. The Eclipse Layout Kernel (ELK) provides such layout algorithms, as well as an infrastructure to connect them to diagram editors.
ELK consists of two parts:
- The kernel provides the basic infrastructure that connects editors with layout algorithms. Part of that is the ElkGraph, a data structure used to pass diagrams to the layout algorithms and receive the layout information computed by the algorithms.
- The actual layout algorithms. Different layout algorithms specialize in different kinds of diagrams and layout problems.
To use ELK, a developer usually only has to provide a transformation that produces an ElkGraph and applies the computed layout results back to his editor.