Layoutmethode implementieren

In Abhängigkeit von den Merkmalen des Layoutalgorithmus könne einige Schritte anders oder unnötig sein, während andere Schritte erforderlich sind.
Je nach Implementierung Ihres Layoutalgorithmus müssen andere Methoden der Basisgraphenlayoutklasse überschrieben werden. Wenn Ihre Unterklasse beispielsweise einige der generischen Parameter der Basisklasse unterstützt, müssen Sie die Methode supports[ParameterName] überschreiben (siehe Parameter und Features der Basisklasse).
Weitere Informationen zur Klasse ibm_ilog.graphlayout.GraphLayout finden Sie in der Dokumentation zur Klassenbibliothek.
Gehen Sie wie folgt vor, um die Layoutmethode im angepassten Musterlayoutalgorithmus zu implementieren:
  1. Rufen Sie das Graphenmodell (getGraphModel() in der Layoutinstanz) ab.
    var model = this.getGraphModel();
    
  2. Rufen Sie die Instanz des Layoutberichts ab, die automatisch erstellt wird, wenn die Methode performLayout aus der Unterklasse aufgerufen wird (getLayoutReport() in der Layoutinstanz). Weitere Informationen finden Sie unter Graphenlayoutbericht verwenden.
    var report = this.getLayoutReport();
    
  3. Rufen Sie die Layoutbereichsparameter ab, um den Bereich zu berechnen, in dem die Knoten platziert werden sollen.
    var rect = this.getCalcLayoutRegion();
    
  4. Rufen Sie einen Vektor der Knoten ab (Eigenschaft nodes in der Graphenlayoutmodellinstanz).
    var nds = model.getNodes();
    
  5. Zeigen Sie die Knoten an, und überspringen Sie dabei feste Knoten (isFixed(node) in der Layoutinstanz), sofern dies vom Benutzer angefordert wird (isPreserveFixedNodes() in der Layoutinstanz).
                    var count = nds.length;
                    for (var i = 0; i < count; i++) {
                        var node = nds[i];
                        ...
                    }
    
    
    (Einzelheiten zu festen Knoten finden Sie unter Feste Knoten beibehalten).
  6. Verschieben Sie jeden Knoten an die neu berechneten Koordinaten innerhalb des Layoutbereichs.
    model.moveNode
    model.moveNode(node, x, y);
    
  7. Benachrichtigen Sie die Listener über Layoutereignisse, dass ein neuer Knoten positioniert wurde. Dies ermöglicht dem Benutzer, beispielsweise eine Fortschrittsleiste zu implementieren, wenn ein Listener für Layoutereignisse in der Layoutinstanz registriert wurde. (Einzelheiten zu Ereignislistenern finden Sie unter Ereignislistener verwenden.)
    Rufen Sie in der Layoutinstanz Folgendes auf:
    this.callLayoutStepPerformedIfNeeded();
    
  8. Definieren Sie den Code abschließend im Layoutbericht.
    report.code = ibm_ilog.graphlayout.GraphLayoutReport.LAYOUT_DONE;
    
Nachdem Sie Ihren eigenen Layoutalgorithmus MyRandomLayout implementiert haben, können Sie ihn direkt in Dojo JavaScript verwenden.