Versions Compared

Key

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

...

OptionIDTypeApplies toDefault
Alignmentde.cau.cs.kieler.alignmentEnumNodesAUTOMATIC
Aspect Ratiode.cau.cs.kieler.aspectRatioFloatParents0.0
Bend Pointsde.cau.cs.kieler.bendPointsObjectEdges 
Border Spacingde.cau.cs.kieler.borderSpacingFloatParents-1.0 
Comment Boxde.cau.cs.kieler.commentBoxBooleanNodesfalse
Debug Modede.cau.cs.kieler.debugModeBooleanParentsfalse
Diagram Typede.cau.cs.kieler.diagramTypeString  
Directionde.cau.cs.kieler.directionEnumParentsUNDEFINED 
Edge Label Placementde.cau.cs.kieler.edgeLabelPlacementEnumLabelsUNDEFINED 
Edge Routingde.cau.cs.kieler.edgeRoutingEnumParentsUNDEFINED 
Edge Typede.cau.cs.kieler.edgeTypeEnumEdgesNONE
Expand Nodesde.cau.cs.kieler.expandNodesBooleanParentsfalse
Font Namede.cau.cs.kieler.fontNameStringLabels 
Font Sizede.cau.cs.kieler.fontSizeIntLabels 
Hypernodede.cau.cs.kieler.hypernodeBooleanNodesfalse
Interactivede.cau.cs.kieler.interactiveBooleanParentsfalse
Label Spacingde.cau.cs.kieler.labelSpacingFloatEdges
Nodes
-1.0 
Layout Hierarchyde.cau.cs.kieler.layoutHierarchyBooleanParentsfalse
Layout Algorithmde.cau.cs.kieler.algorithmStringParents 
Minimal Heightde.cau.cs.kieler.minHeightFloat

Nodes
Parents

0.0
Minimal Widthde.cau.cs.kieler.minWidthFloat

Nodes
Parents

0.0
No Layoutde.cau.cs.kieler.noLayoutBoolean false
Node Label Placementde.cau.cs.kieler.nodeLabelPlacementEnumSetNodes 
Port Constraintsde.cau.cs.kieler.portConstraintsEnumNodesUNDEFINED 
Port Label Placementde.cau.cs.kieler.portLabelPlacementEnumNodesOUTSIDE
Port Offsetde.cau.cs.kieler.offsetFloatPorts 
Port Sidede.cau.cs.kieler.portSideEnumPortsUNDEFINED 
Port Spacingde.cau.cs.kieler.portSpacingFloatNodes 
Positionde.cau.cs.kieler.positionObject

Labels
Nodes
Ports

 
Priorityde.cau.cs.kieler.priorityIntEdges
Nodes
 
Randomization Seedde.cau.cs.kieler.randomSeedIntParents 
Separate Connected Componentsde.cau.cs.kieler.separateConnCompBooleanParents 
Size Constraintde.cau.cs.kieler.sizeConstraintEnumSetNodes 
Size Optionsde.cau.cs.kieler.sizeOptionsEnumSetNodesDEFAULT_MINIMUM_SIZE
Spacingde.cau.cs.kieler.spacingFloatParents-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
layoutAlgorithm
layoutAlgorithm

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
diagramType
diagramType

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
edgeRouting
edgeRouting

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
portOffset
portOffset

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.

...