Spezielle Parameter (für alle Baumstrukturlayoutmodi)

Die folgenden Parameter sind spezielle Parameter der Klasse ibm_ilog.graphlayout.tree.TreeLayout. Sie gelten für alle Layoutmodi.

Stammknoten (TL)

Das endgültige Layout wird hauptsächlich durch die Wahl des Stammknotens beeinflusst.
Der Stammknoten wird an einer prominenten Position platziert. In einer Top-down-Zeichnung im Modus für freies Layout wird der Stammknoten beispielsweise oben in der Baumstruktur platziert. Im Radiallayoutmodus wird der Stammknoten in der Mitte der Baumstruktur platziert.
Der Spanning Tree wird ausgehend vom Stammknoten berechnet. Wenn der Graph nicht verbunden ist, benötigt der Layoutalgorithmus einen Stammknoten für jede verbundene Komponente.
Der Layoutalgorithmus wählt bei Bedarf automatisch einen Stammknoten aus. Er verwendet ein heuristisches Verfahren, das die Vorgaben für alle Knoten berechnet, um einen Stammknoten festlegen zu können. Er wählt den Knoten mit der höchsten Vorgabe aus. Das heuristische Verfahren weist Knoten ohne eingehende Links die höchste Vorgabe und Blattknoten mit abgehenden Links die niedrigste Vorgabe zu. Deshalb wird in einer gerichteten Strukturbaum der kanonische Stammknoten immer automatisch ausgewählt.
Es ist möglich, die Wahl des Stammknotens zu beeinflussen.
Gehen Sie wie folgt vor, um einen bestimmten Knoten explizit als Stammknoten zu definieren:
Verwenden Sie die Methode setRoot:
treeLayout.setRoot(node);
Dem Knoten wird damit die maximale Vorgabe erteilt, so dass er während des Layouts als Stammknoten verwendet wird. Wenn nur ein einziger Knoten auf diese Weise spezifiziert wird, wählt der Algorithmus diesen Knoten aus. Werden mehrere Knoten derselben verbundenen Komponente auf diese Weise angegeben, wählt der Layoutalgorithmus einen dieser Knoten als Stammknoten aus.

Für Experten: Weitere Optionen für Stammknoten (TL)

Der Layoutalgorithmus verwaltet eine Liste der Stammknoten, die mit der Methode setRoot angegeben wurden.
Zum Abrufen der Knoten in der Liste verwenden Sie Methode getSpecRoots:
var roots = treeLayout.getSpecRoots();
while(roots.hasNext()){
	var root = roots.next();
	...
}
Nach dem Layout können Sie auch die Liste der vom Algorithmus verwendeten Stammknoten abrufen. Diese Liste ist nicht unbedingt dieselbe wie die Liste der angegebenen Knoten. Sie enthält beispielsweise die ausgewählten Stammknoten, wenn keine Stammknoten oder zu viele Stammknoten angegeben wurden.
Verwenden Sie die Methode getCalcRoots, um die vom Algorithmus verwendeten Stammknoten abzurufen:
var roots = treeLayout.getCalcRoots();
while(roots.hasNext()){
	var root = roots.next();
	...
}
Dieses Beispiel veranschaulicht, wie Sie über die berechneten Stammknoten iterieren und die Vorrangstellungen der Stammknoten ausgeben können:
var roots = treeLayout.getCalcRoots();
while(roots.hasNext()){
 var root = roots.next();
 console.log("Preference: " + treeLayout.getRootPreference(root));
}
Gehen Sie wie folgt vor, um den Vorgabewert für den Stammknoten eines einzelnen Knotens direkt zu bearbeiten:
Verwenden Sie die folgende Methode:
treeLayout.setRootPreference(node, 100);
In diesem Fall verwendet das Layout den angegebenen Wert anstelle der heuristisch berechneten Vorgabe für den Knoten. Der normale Vorgabewert muss 0-10000 sein. Die explizite Angabe eines Stammknotens entspricht der Definition des Vorgabewerts 10000. Wenn Sie verhindern möchten, dass ein Knoten der Stammknoten wird, geben Sie null (0) als Vorgabewert an.
Ein negativer Vorgabewert zeigt an, dass der Layoutalgorithmus die Stammknotenvorgabe unter Verwendung des heuristischen Verfahrens neu berechnen muss. Wenn mit der Methode setRoot ein Stammknoten angegeben wurde, aber dieser Knoten in nachfolgenden Layouts nicht mehr als Stammknoten verwendet werden darf, verwenden Sie den folgenden Aufruf, um die Stammknoteneinstellung zu löschen:
treeLayout.setRootPreference(node, -1);
Dieser Aufruf entfernt den Knoten auch aus der Liste angegebener Stammknoten.

Positionsparameter (TL)

Gehen Sie wie folgt vor, um die Position der oberen linken Ecke des Layouts auf (10, 10) zu setzen:
Verwenden Sie die folgende Methode:
treeLayout.setPosition({x:10, y:10}, false);
Wenn der Graph nur aus einer einzigen Baumstruktur besteht, ist es häufig einfacher, stattdessen die Position des Stammknotens festzulegen. Gehen Sie dazu wie folgt vor:
Verwenden Sie dieselbe Methode, und übergeben Sie true anstelle von false:
treeLayout.setPosition({x:10, y:10}, true); 
Wenn keine Position angegeben wird, behält das Layout die vorherige Position des Stammknotens bei.

Kompassrichtungen für positionsgebundene Layoutparameter verwenden (TL)

Die Kompassrichtungen Norden, Süden, Osten und Westen werden verwendet, um die Erläuterungen der Layoutparameter zu vereinfachen. Die Mitte des Stammknotens einer Baumstruktur ist der Nordpol.
In nicht radialen Layoutmodi ist die Arbeitsrichtung der Links immer Süden. Wenn der Stammknoten oben in der Zeichnung platziert wird, ist Norden oben, Süden unten, Osten rechts und Westen links. Wenn der Stammknoten am linken Rand der Zeichnung platziert wird, ist Norden links, Süden rechts, Osten oben und Westen unten.
In den Radiallayoutmodi wird der Stammknoten in der Mitte der Zeichnung platziert. Die Bedeutung von Norden und Süden richtet sich nach der Position relativ zum Stammknoten: Die Nordseite des Knotens ist die Seite, die näher am Stammknoten liegt, und die Südseite die Seite, die weiter vom Stammknoten entfernt ist. Die Ostrichtung verläuft entgegen dem Uhrzeigersinn um den Stammknoten herum, und die Westrichtung im Uhrzeigersinn um den Stammknoten herum. Dies ist ähnlich wie bei einer Landkarte eines echten Globus, auf der der Bereich des Nordpols so gezeigt wird, als würden Sie von oben auf den Globus heruntersehen.
Kompassrichtungen werden verwendet, um einheitliche Namenskonventionen für bestimmte Layoutoptionen zu unterstützen. Sie kommen in den Ausrichtungsoptionen, der Option für die Ebenenausrichtung und im Merkmal für die Ost-West-Nachbarschaft vor, die später noch erläutert werden. In Arbeitsrichtungen und Radiallayoutmodus zeigen die Kompasssymbole die Kompassrichtungen in diesen Zeichnungen an.

Layoutmodi (TL)

Der Algorithmus für Baumstrukturlayout unterstützt mehrere Layoutmodi. Das folgende Beispiel veranschaulicht, wie der Layoutmodus angegeben wird.
Verwenden Sie die Methode setLayoutMode:
treeLayout.setLayoutMode(ibm_ilog.graphlayout.tree.TreeLayout.RADIAL);  
Die folgenden Layoutmodi sind verfügbar:
  • ibm_ilog.graphlayout.tree.TreeLayout.FREE (Standardwert)
  • ibm_ilog.graphlayout.tree.TreeLayout.LEVEL
  • ibm_ilog.graphlayout.tree.TreeLayout.RADIAL
  • ibm_ilog.graphlayout.tree.TreeLayout.ALTERNATING_RADIAL
  • ibm_ilog.graphlayout.tree.TreeLayout.BALLOON
  • ibm_ilog.graphlayout.tree.TreeLayout.TIP_OVER
  • ibm_ilog.graphlayout.tree.TreeLayout.TIP_ROOTS_OVER
  • ibm_ilog.graphlayout.tree.TreeLayout.TIP_LEAVES_OVER
  • ibm_ilog.graphlayout.tree.TreeLayout.TIP_ROOTS_AND_LEAVES_OVER