IBM® ILOG® Dojo Diagrammer stellt eine spezielle Unterstützung für das Layout eines
nicht verbundenen Graphen (siehe disconnected graph) bereit.
Wenn sich ein Graph aus mehreren verbundenen Komponenten (siehe connected component) zusammensetzt oder
isolierte Knoten (Knoten ohne Links) enthält, möchten Sie möglicherweise den Layoutalgorithmus
separat auf jede verbundene Komponente anwenden und dann die verbundenen Komponenten mithilfe eines speziellen
Layoutalgorithmus (gewöhnlich ibm_ilog.graphlayout.grid.GridLayout) positionieren.
Die folgende Abbildung zeigt ein Beispiel eines Graphen, der vier verbundene Komponenten enthält.
Durch die Aktivierung des Layouts der verbundenen Komponenten in der regulären
Layoutinstanz (hier ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout) werden die verbundenen Komponenten automatisch identifiziert und einzeln angelegt.
Zum Schluss werden die vier verbundenen Komponenten mithilfe eines
hoch anpassbaren Platzierungsalgorithmus (ibm_ilog.graphlayout.grid.GridLayout) positioniert.

Automatisches Layout verbundener Komponenten in einem nicht verbundenen Graphen
Verwenden Sie die folgende Methode, um anzuzeigen, ob eine Unterklasse von
ibm_ilog.graphlayout.GraphLayout dieses Merkmal unterstützt:
supportsLayoutOfConnectedComponents()
Die Standardimplementierung gibt
false
zurück.
Eine Unterklasse kann diese Methode überschreiben, so dass true
zurückgegeben wird, um anzuzeigen, dass dieses
Merkmal unterstützt wird.
Sie können das Layout der verbundenen Komponenten mit der Methode
setLayoutOfConnectedComponentsEnabled(true) aktivieren.
Gehen Sie zum Abrufen der aktuellen Einstellung wie folgt vor:
var enabled = layout.isLayoutOfConnectedComponentsEnabled();
Der Standardwert ist der Wert, der von der folgenden Methode zurückgegeben wird:
isLayoutOfConnectedComponentsEnabledByDefault()
Die Standardimplementierung dieser Methode in
ibm_ilog.graphlayout.GraphLayout gibt
false
zurück.
Für einige der Layoutklassen ist es in Ordnung, dass dieses Merkmal standardmäßig aktiviert ist, und sie überschreiben
diese Methode so, dass true
zurückgegeben wird.
Wenn die Methode
performLayout
der Klasse ibm_ilog.graphlayout.GraphLayout
in einer Layoutklasse aktiviert ist, die dieses Merkmal unterstützt, teilt die Methode
das zugeordnete Graphenmodell in verbundene Komponenten auf und legt jede verbundene Komponente separat an. Wie funktioniert das Layout verbundener Komponenten, wenn dieser Mechanismus in den Layoutklassen aktiviert ist, die dieses
Merkmal unterstützen? Anstatt das Layout des gesamten Graphen auszuführen, teilt die Methode
performLayout
den Graphen zuerst in verbundene Komponenten auf.
Anschließend wird jede verbundene Komponente separat durch einen Aufruf der Methode
layout
angelegt. Dazu wird der zugeordnete Graph vorübergehend
in intern generierte Graphen geändert, die jeweils einer der verbundenen Komponenten des ursprünglichen Graphen entsprechen.
Zum Schluss wird die mit der Methode setLayoutOfConnectedComponents -
layout.setLayoutOfConnectedComponents(connectedComponentsLayout);
angegebene Layoutinstanz verwendet, um die verbundenen Komponenten zu positionieren. Rufen Sie die Methode
setLayoutOfConnectedComponents auf, um
die Layoutinstanz anzugeben, die die verbundenen Komponenten platziert.
Wenn mit dieser Methode keine Layoutinstanz angegeben wird, gibt die Methode
getLayoutOfConnectedComponents
eine Instanz
von ibm_ilog.graphlayout.grid.GridLayout zurück. Der Layoutbereichsparameter ist standardmäßig auf das Rechteck (0
, 0
,
800
, 800
) gesetzt.
Der Parameter für den Layoutmodus ist auf ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_ROWS gesetzt. Hinweis
Das Baumstrukturlayout und das hierarchische Layout enthalten integrierte Unterstützung
für nicht verbundene Graphen.
Für das Baumstrukturlayout und das hierarchische Layout kann das Ergebnis vom Ergebnis
des generischen Mechanismus (das Layout der verbundenen Komponenten), er von der Basisklasse
ibm_ilog.graphlayout.GraphLayout bereitgestellt wird, abweichen. Je nach Ihren speziellen Anforderungen können Sie den generischen
Mechanismus oder die integrierte Unterstützung verwenden.