Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warning

KIML has been discontinued and is replaced by the Eclipse Layout Kernel (ELK).

Panel
borderStyledashed
titleProject Overview
borderStyledashed

Related Publications:

  • Miro Spönemann, Hauke Fuhrmann, and Reinhard von Hanxleden. Automatic Layout of Data Flow Diagrams in KIELER and Ptolemy II. Technical Report 0914, Christian-Albrechts-Universität zu Kiel, Department of Computer Science, 2009. (pdfbib)
  • Hauke Fuhrmann, Miro Spönemann, Michael Matzen, and Reinhard von Hanxleden. Automatic layout and structure-based editing of UML diagrams. In Proceedings of the 1st Workshop on Model Based Engineering for Embedded Systems Design (M-BED'10), Dresden, 2010. (pdfbib)
  • Christian Schneider, Miro Spönemann, and Reinhard von Hanxleden. Transient view generation in Eclipse. In Proceedings of the First Workshop on Academics Modeling with Eclipse, Kgs. Lyngby, Denmark, 2012. (pdfbib)
  • Miro Spönemann, Christoph Daniel Schulze, Christian Motika, Christian Schneider, and Reinhard von Hanxleden. KIELER: Building on Automatic Layout for Pragmatics-Aware Modeling (Showpiece). In Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC’13), San Jose, CA, USA, 15–19 September 2013. (pdf / bib)

Related Theses:

  • Björn Duderstadt, Evolutionary Meta Layout for KIELER, May 2011 (pdf)

...


Contents

Table of Contents
maxLevel2

...

  1. Install the "KIELER Layout for GMF" feature from our update site, see Downloads
    • It includes the Java-based layout algorithms developed in the KLay project.
  2. Open a diagram and press the layout button  or use the shortcut Ctrl+R L.

...

The primary API of KIML is the DiagramLayoutEngine, which is responsible for analyzing diagrams, creating a KGraph structure, configuring and executing the layout algorithms, and writing new position information back to the diagram. It is invoked with

Code Block
language
languagejava
themeEclipsejava
DiagramLayoutEngine.INSTANCE.layout(workbenchPart, diagramPart)

...

Each layout option that is registered in the extension point needs a corresponding constant in Java code, where the most relevant data is replicated with a Property constant for easy use in the implementation of layout algorithms. KIML comes with a large set of built-in layout options, which are all defined in LayoutOptions. Layout providers can access the layout option values using the IPropertyHolder interface:

Code Block
languagejava
themeEclipse
languagejava
KShapeLayout nodeLayout = parentNode.getData(KShapeLayout.class);
boolean isInteractive = nodeLayout.getProperty(LayoutOptions.INTERACTIVE);

...


The layout option that is used in this example has a default value, thus it is guaranteed that the option always returns a valid value. This and the fact that properties are type-safe allows us to implicitly cast and unbox the returned value to a boolean without checking for NullPointerExceptions or ClassCastExceptions.

...