Page History
...
Option | ID | Type | Applies to | Default |
---|---|---|---|---|
Alignment | de.cau.cs.kieler.alignment | Enum | Nodes | AUTOMATIC |
Aspect Ratio | de.cau.cs.kieler.aspectRatio | Float | Parents | 0.0 |
Bend Points | de.cau.cs.kieler.bendPoints | Object | Edges | |
Border Spacing | de.cau.cs.kieler.borderSpacing | Float | Parents | -1.0 |
Comment Box | de.cau.cs.kieler.commentBox | Boolean | Nodes | false |
Debug Mode | de.cau.cs.kieler.debugMode | Boolean | Parents | false |
Diagram Type | de.cau.cs.kieler.diagramType | String | ||
Direction | de.cau.cs.kieler.direction | Enum | Parents | UNDEFINED |
Edge Label Placement | de.cau.cs.kieler.edgeLabelPlacement | Enum | Labels | UNDEFINED |
Edge Routing | de.cau.cs.kieler.edgeRouting | Enum | Parents | UNDEFINED |
Edge Type | de.cau.cs.kieler.edgeType | Enum | Edges | NONE |
Expand Nodes | de.cau.cs.kieler.expandNodes | Boolean | Parents | false |
Font Name | de.cau.cs.kieler.fontName | String | Labels | |
Font Size | de.cau.cs.kieler.fontSize | Int | Labels | |
Hypernode | de.cau.cs.kieler.hypernode | Boolean | Nodes | false |
Interactive | de.cau.cs.kieler.interactive | Boolean | Parents | false |
Label Spacing | de.cau.cs.kieler.labelSpacing | Float | Edges Nodes | -1.0 |
Layout Hierarchy | de.cau.cs.kieler.layoutHierarchy | Boolean | Parents | false |
Layout Algorithm | de.cau.cs.kieler.algorithm | String | Parents | |
Minimal Height | de.cau.cs.kieler.minHeight | Float | Nodes | 0.0 |
Minimal Width | de.cau.cs.kieler.minWidth | Float | Nodes | 0.0 |
No Layout | de.cau.cs.kieler.noLayout | Boolean | false | |
Node Label Placement | de.cau.cs.kieler.nodeLabelPlacement | EnumSet | Nodes | |
Port Constraints | de.cau.cs.kieler.portConstraints | Enum | Nodes | UNDEFINED |
Port Label Placement | de.cau.cs.kieler.portLabelPlacement | Enum | Nodes | OUTSIDE |
Port Offset | de.cau.cs.kieler.offset | Float | Ports | |
Port Side | de.cau.cs.kieler.portSide | Enum | PortsUNDEFINED | |
Port Spacing | de.cau.cs.kieler.portSpacing | Float | Nodes | |
Position | de.cau.cs.kieler.position | Object | Labels | |
Priority | de.cau.cs.kieler.priority | Int | Edges Nodes | |
Randomization Seed | de.cau.cs.kieler.randomSeed | Int | Parents | |
Separate Connected Components | de.cau.cs.kieler.separateConnComp | Boolean | Parents | |
Size Constraint | de.cau.cs.kieler.sizeConstraint | EnumSet | Nodes | |
Size Options | de.cau.cs.kieler.sizeOptions | EnumSet | Nodes | DEFAULT_MINIMUM_SIZE |
Spacing | de.cau.cs.kieler.spacing | Float | Parents | -1.0 |
The Most Important Options
While most layout options are used to affect how the active layout algorithm computes concrete coordinates for the graph elements, there are some layout options that have a special role in KIML.
Layout Algorithm
Anchor | ||||
---|---|---|---|---|
|
The option with identifier de.cau.cs.kieler.algorithm
specifies which layout algorithm to use for the content of a composite node. The value can be either the identifier of a layout algorithm or the identifier of a layout type. In the latter case the algorithm with highest priority of that type is applied.
...
- The KLay Project - Java implementations of standard layout approaches, augmented with special processing of graph features such as ports and edge labels.
- Randomizer - Distributes the nodes randomly; not very useful, but it can show how important a good layout is for understanding a graph.
Box Layout - Ignores edges, places all nodes in rows. Can be used to layout collections of unconnected boxes, such as Statechart regions.
- Fixed Layout - Does not compute a new layout, but leaves all nodes and edges where they are. If the Position and Bend Points options are set for the elements of the graph, the pre-defined layout is applied.
- OGDF (www.ogdf.net) - A self-contained C++ class library for the automatic layout of diagrams. The version that is shipped with KIELER is compiled as an executable that reads files in OGML format and outputs the computed concrete layout.
- Graphviz (www.graphviz.org) - An open source graph visualization tool with several graph layout programs, web and interactive graphical interfaces, auxiliary tools, libraries, and language bindings. Graphviz needs to be installed separately in order to be used within KIELER, since it is called in a separate process using the DOT language for communication.
Diagram Type
Anchor | ||||
---|---|---|---|---|
|
Diagram types are used to classify graphical diagrams for setting default layout option values for a set of similar diagrams. The diagram type of an element is specified with the layout option de.cau.cs.kieler.diagramType
. Layout algorithms can declare which diagram types they support well, and give a priority value for each supported type. KIML decides at runtime which layout algorithm has the highest priority for a given diagram, so that the most suitable algorithm is always used. Usual values for such priorities are between 1 and 10, where the highest value should only be assigned if the algorithm is especially designed for diagrams of the respective type, or if it has proven to be very adequate for them. Lower values should be given if the algorithm is able to draw the diagrams correctly, but with lower quality of the resulting layout.
...
This section explains every layout option in more detail.
Edge Routing
Anchor | ||||
---|---|---|---|---|
|
This option influences the way in which edges are routed between the nodes they connect. The following settings are available:
...
TODO: Add an image illustrating the different routing styles.
Port Offset
Anchor | ||||
---|---|---|---|---|
|
The port offset is used to specify how much space a layout algorithm should leave between a port and the border of its node. This is usually zero, but doesn't have to be. If the offset is not defined for a given port, a layout algorithm can try to infer the offset from the port's coordinates and its node's size in the input graph. This of course requires both properties to be set to sensible values.
...