Im Folgenden sind die gültigen globalen Eigenschaften in den
nodeLayout- und linkLayout-Objekten eines Ausgangsgraphen bzw. Untergraphen aufgelistet:
Eigenschaft | Beschreibung |
---|---|
algorithm | Der Typ des auszuführenden Layouts. Die gültigen Werte sind circular, forcedirected, grid, hierarchical, longlink, random, shortlink, basiclinkstyle und tree. |
<Name der clientseitigen globalen Eigenschaft> | Der Name der Eigenschaft in der entsprechenden clientseitigen Layoutklasse. Es können alle globalen Eigenschaften der Typen number, boolean, point und rectangle angegeben werden. |
Im folgenden Beispiel werden Werte für zwei globale Eigenschaften mit einem
forcedirected-Layout festgelegt:
"nodeLayout": { "algorithm":"forcedirected", "preferredLinkLength": 100, "respectNodeSizes": true },
In dem an den Server übergebenen Graphen können die
nodeLayout- und linkLayout-Objekte in jedem Untergraphen vorhanden sein,
für den der Client das Layout ausführen möchte.
Dies lässt die Verwendung unterschiedlicher Layoutalgorithmen für verschiedene Untergraphen zu.
Sie können auch, wie im clientseitigen Graphenlayout, denselben Algorithmus mit unterschiedlichen Parametern anwenden.
Das Fehlen der nodeLayout- oder linkLayout-Objekte für einen bestimmten
Graphen oder Untergraphen zeigt an, dass kein Knoten- bzw. Linklayout für diesen Graphen bzw. Untergraphen ausgeführt werden muss.
Vorgaben für hierarchische Layouts
Das clientseitige HierarchicalLayout stellt eine erweiterte Anpassungs-API bereit, die verschiedene Typen von Vorgaben verwendet.
In JSON beschreibt die Eigenschaft constraints die Vorgaben
in einem Array, dessen Elemente JSON-Objekte mit den folgenden Eigenschaften sind:
Eigenschaft | Beschreibung |
---|---|
name | Der Typ der Vorgabe. Die gültigen Werte sind LevelRangeConstraint, GroupSpreadConstraint, RelativeLevelConstraint, ExtremityConstraint, RelativePositionConstraint, SameLevelConstraint, SideBySideConstraint und SwimLaneConstraint. |
<Name der clientseitigen Vorgabeneigenschaft> | Der Wert der Vorgabeneigenschaft. |
Im folgenden Beispiel wird eine Vorgabe des Typs LevelRangeConstraint beschrieben:
"nodeLayout":{ "algorithm":"hierarchical", "constraints":[ { "name":"LevelRangeConstraint", "minLevel":0, "maxLevel":1, "nodes":[ { "id":"1" }, { "id":"2" } ] } ] ...
Hinweis
Ähnlich wie beim clientseitigen Layout werden beim serverseitigen Layout aus Containern des Typs
SwimLane
automatisch Vorgaben für Bahnen im hierarchischen Layout (HierarchicalSwimLaneConstraint) erstellt.
Clusteringparameter für zirkuläres Layout
Das clientseitige CircularLayout stellt eine API für die Spezifikation von Clustern bereit.
In JSON beschreibt die Eigenschaft clusterIds die Cluster
in einem Array, dessen Elemente JSON-Objekte mit den folgenden Eigenschaften sind:
Eigenschaft | Beschreibung |
---|---|
name oder number | Der Name oder die Nummer des Clusters. Die Eigenschaft name des Typs String wird für clientseitige Cluster verwendet, die mit der Klasse CircularClusterName identifiziert werden. Die Eigenschaft number des Typs integer wird für clientseitige Cluster verwendet, die mit der Klasse CircularClusterNumber identifiziert werden. |
nodes | Array, das die Knoten beschreibt, die zum angegebenen Cluster gehören. Für jeden Knoten werden die folgenden Attribute unterstützt: id, index und starCenter. |
Im folgenden Beispiel werden ein Cluster des Typs CircularClusterName und ein Cluster des Typs
CircularClusterNumber beschrieben:
"nodeLayout":{ "algorithm":"circular", "clusterIds":[ { "name":"first cluster", "nodes":[ { "id":"174", "index":33, "starCenter":true }, { "id":"190" } ] }, { "number":2, "nodes":[ { "id":"179" }, { "id":"187" } ] } ...