Der Algorithmus für hierarchisches Layout unterstützt Vorgaben für die relative Position in
Knoten. Eine solche Vorgabe ist eine Regel, die bestimmt, wie ein bestimmter Knoten
(oder eine Gruppe von Knoten) in Bezug auf die anderen Knoten platziert werden muss.
Die Vorgaben haben Einfluss auf die relativen Positionen.
Sie können beispielsweise erzwingen, dass Knoten
A
auf der linken Seite von Knoten B
platziert wird.
Somit wird die Position von A
relativ zur Position von
B
angegeben. Es ist theoretisch möglich,
widersprüchliche Vorgaben anzugeben: Wenn Sie angeben, dass Knoten
A
auf der linken Seite von Knoten B
und B
auf der linken Seite
von Knoten A
platziert werden muss, können diese Vorgaben nicht gleichzeitig eingehalten werden.
Wenn sich Knoten A
auf der linken Seite von Knoten
B
befindet, dann muss sich Knoten B
auf der rechten Seite von Knoten
A
befinden. Der Algorithmus für hierarchisches Layout
versucht, Vorgabenkonflikte automatisch zu erkennen und zu beheben.
Er ignoriert Vorgaben, die nicht lösbar sind. Da die automatische Auflösung von Vorgaben
zeitaufwendig ist, wird empfohlen, nicht widersprüchliche Vorgaben anzugeben, sofern dies möglich ist.
Vorgaben dürfen nur verwendet werden, wenn der inkrementelle Modus inaktiviert ist.
Der inkrementelle Modus ist mit zusätzlichen Vorgaben implementiert, die intern hinzugefügt werden.
Wenn Sie also im inkrementellen Modus Vorgaben verwenden, erkennt das System wahrscheinlich so viele Vorgabenkonflikte, dass
es zu unerwarteten Ergebnissen kommt.
Vorgaben müssen mit Sorgfalt verwendet werden. Je mehr Vorgaben angegeben werden, desto schwieriger ist die Berechnung des Layouts.
Deshalb kann das erstellt Layout mehr Linkkreuzungen haben und weniger gleichmäßig sein als ein Graph ohne Vorgaben.
Jeder Typ von Vorgabe wird durch eine Unterklasse von
ibm_ilog.graphlayout.hierarchical.HierarchicalConstraint dargestellt. Die folgenden Vorgabentypen
sind verfügbar:
ibm_ilog.graphlayout.hierarchical.HierarchicalLevelRangeConstraint |
Bewirkt, dass ein Knoten in einem Bereich bestimmter Ebenen platziert wird. |
ibm_ilog.graphlayout.hierarchical.HierarchicalSameLevelConstraint |
Bewirkt, dass zwei Knoten auf derselben Ebene platziert werden. |
ibm_ilog.graphlayout.hierarchical.HierarchicalRelativeLevelConstraint |
Bewirkt, dass ein Knoten auf einer niedrigeren/höheren Ebene als ein anderer Knoten platziert wird.
|
ibm_ilog.graphlayout.hierarchical.HierarchicalGroupSpreadConstraint |
Bewirkt, dass eine Gruppe von Knoten auf Ebenen platziert wird, die nicht weiter als der angegebene Streuwert
entfernt sind.
|
ibm_ilog.graphlayout.hierarchical.HierarchicalRelativePositionConstraint |
Bewirkt, dass ein Knoten an einer niedrigeren/höheren Position als ein anderer Knoten derselben Ebene platziert wird.
|
ibm_ilog.graphlayout.hierarchical.HierarchicalSideBySideConstraint |
Bewirkt, dass zwei Knoten derselben Ebene nebeneinander platziert werden.
|
ibm_ilog.graphlayout.hierarchical.HierarchicalExtremityConstraint |
Bewirkt, dass ein Knoten auf der ersten oder letzten Ebene bzw. an der ersten bzw. letzten Position innerhalb einer Ebene platziert wird.
|
ibm_ilog.graphlayout.hierarchical.HierarchicalSwimLaneConstraint |
Bewirkt, dass eine Gruppe von Knoten in derselben rechteckigen Bahn platziert wird.
|
Hinweis
Wenn das hierarchische Layout für das Anlegen von Knoten und Links in einer
Diagram-Komponente verwendet wird, die
Objekte für Bahnen (Instanzen von ibm_ilog.graphlayout.SwimLane) enthält,
werden automatisch Instanzen von ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.HierarchicalSwinLaneConstraint
erstellt, um die untergeordneten Bahnobjekte
in derselben Bahn zu platzieren und die richtige Größe für die Bahnen zu wählen.