Graphenlayout: Verwendung der API

In einer Anwendung, die nicht direkt mit Graphen arbeitet, müssen Operationen wie das Zuordnen einer Graphenlayoutinstanz explizit ausgeführt werden.

Basisklasse

Die Klasse ibm_ilog.graphlayout.GraphLayout ist die Basisklasse für alle Layoutalgorithmen. Diese Klasse ist eine abstrakte Klasse und kann nicht direkt verwendet werden. Sie müssen eine der Unterklassen dieser Klasse verwenden: ibm_ilog.graphlayout.hierarchical.HierarchicalLayout, ibm_ilog.graphlayout.tree.TreeLayout, ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout, ibm_ilog.graphlayout.shortlink.ShortLinkLayout, ibm_ilog.graphlayout.longlink.LongLinkLayout, ibm_ilog.graphlayout.random.RandomLayout, ibm_ilog.graphlayout.circular.CircularLayout, ibm_ilog.graphlayout.grid.GridLayout. Sie können auch eigene Unterklassen erstellen, um andere Layoutalgorithmen zu implementieren. Weitere Informationen finden Sie unter Eigenen Layouttyp definieren.
Obwohl nur Unterklassen von GraphLayout direkt zum Abrufen der Layouts verwendet wird, müssen Sie sich mit dieser Klasse vertraut machen, weil sie Methoden enthält, die von den Unterklassen übernommen (oder überschrieben) werden. Sie müssen diese Klasse kennen, um eigene Unterklassen zu erstellen.
UML-Klassendiagramm, das die Unterklassen der
abstrakten Klasse GraphLayout und die Beziehungen einiger dieser Klassen zu den verschiedenen Layoutberichten
zeigt.
Das Klassendiagramm verwendet die normalen UML-Konventionen für die Darstellung der Klassen und Beziehungen.
Die Klassen, die die Graphenlayoutalgorithmen implementieren, werden auf der linken Seite des Diagramms gezeigt. Die Layoutberichtsklassen
befinden sich auf der rechten Seite.
Die Klasse "GraphLayout" und ihre Unterklassen und Beziehungen für das Anlegen von Berichten

Unterklasse der Basisklasse instanziieren

Die Klasse ibm_ilog.graphlayout.GraphLayout ist eine abstrakte Klasse. Sie hat keine Konstruktoren. Sie instanziieren eine Unterklasse, wie im folgenden Beispiel gezeigt:
var layout = new ibm_ilog.graphlayout.tree.TreeLayout();

Zuordnung eines Layouts zu einem Graphen oder Diagramm vornehmen oder aufheben

In IBM® ILOG® Dojo Diagrammer müssen Sie das Layout einer Instanz des ibm_ilog.diagram.widget.Diagram-Widgets oder einer ibm_ilog.diagram.Graph-Instanz zuordnen.
Wenn Sie das Diagram-Widget verwenden, ordnen Sie das Layout mit dem Attribut nodeLayout oder linkLayout des Diagram-Widget zu. Das folgende Beispiel veranschaulicht, wie Sie dies in der HTML-Markup des Diagram-Widgets durchführen:
<div jsId="linkLayout" dojoType="ibm_ilog.graphlayout.shortlink.ShortLinkLayout"/>
<div id="diagram" dojoType="ibm_ilog.diagram.widget.Diagram" 
  nodeLayout="treeLayout"/>
Das Attribut nodeLayout wird verwendet, um den Hauptgraphenlayoutalgorithmus festzulegen, der die Knoten und Links von Diagram platziert. Sie können auch das Attribut linkLayout verwenden, um ein zweites Layout zu definieren, das nur die Links von Diagram steuert. Sehen Sie sich das folgende Beispiel an:
<div jsId="linkLayout" dojoType="ibm_ilog.graphlayout.shortlink.ShortLinkLayout"/>
<div id="diagram" dojoType="ibm_ilog.diagram.widget.Diagram" 
  linkLayout="linkLayout"/>
Sie können das Knoten- und Link-Layout von Diagram auch in JavaScript festlegen:
var diagram = dijit.byId("diagram");
var treeLayout = new ibm_ilog.graphlayout.tree.TreeLayout();
var linkLayout = new ibm_ilog.graphlayout.shortlink.ShortLinkLayout();
diagram.attr("nodeLayout", treeLayout);
diagram.attr("linkLayout", linkLayout);
Wenn Sie direkt mit dem Graph-Objekt arbeiten (d. h., wenn Sie das Diagram-Widget nicht verwenden, sondern direkt mit den GFX-APIs arbeiten), müssen Sie die Methode setNodeLayout oder setLinkLayout verwenden, um das Layout dem Graph-Objekt zuzuordnen:
var graph = surface.createGraph();
var treeLayout = new ibm_ilog.graphlayout.tree.TreeLayout();
var linkLayout = new ibm_ilog.graphlayout.shortlink.ShortLinkLayout();
graph.setNodeLayout(treeLayout);
graph.setLinkLayout(linkLayout);

Layout ausführen

Nach der Zuordnung des Layoutalgorithmus zu einer Instanz von Diagram oder Graph verwenden Sie die Methode performGraphLayout von Diagram oder Graph, um das Layout zu starten:
diagram.performGraphLayout();
Alternativ
graph.performGraphLayout();
Anschließend wird die geschützte abstrakte Methode layout(boolean redraw) der Unterklasse GraphLayout aufgerufen. Das bedeutet, dass die Steuerung an die Unterklassen übergeben wird, die diese Methode implementieren. Die Implementierung berechnet das Layout und verschiebt die Knoten an neue Positionen oder formt die Links neu oder verschiebt die Knoten und formt die Links neu.
Die Methode getLayoutReport des Graphenlayouts gibt eine Instanz der Klasse ibm_ilog.graphlayout.GraphLayoutReport (oder einer ihrer Unterklassen) zurück, die Informationen zum Verhalten des Layoutalgorithmus enthält. Sie teilt Ihnen mit, ob der Algorithmus normal ausgeführt wird oder ob ein bestimmter vordefinierter Fall eingetreten ist. (Eine ausführlichere Beschreibung des Layoutberichts finden Sie unter Graphenlayoutbericht verwenden.)

Weitere Informationen

Weitere Informationen zur Klasse ibm_ilog.graphlayout.GraphLayout finden Sie in den folgenden Abschnitten:
Einzelheiten zur Klasse ibm_ilog.graphlayout.GraphLayout und anderen Graphenlayoutklassen finden Sie in der IBM® ILOG® Dojo Diagrammer API-Referenzliteratur.