Alle Layoutklassen unterstützen zwei Arten von Ereignissen: Layoutereignisse und Parameterereignisse.
Der Listenermechanismus stellt daher Folgendes bereit:
Ereignislistener für Graphenlayout
Der Listenermechanismus für Layoutereignisse ist eine Möglichkeit, den Benutzer
darüber zu informieren, was während des Layouts passiert.
Gelegentlich kann die Ausführung eines Layoutalgorithmus relativ lange dauern, insbesondere bei großen Graphen.
Außerdem erreicht ein Algorithmus manchmal keine Konvergenz.
Unabhängig von der Situation muss der Benutzer über die Ereignisse informiert werden, die während des Layouts eintreten.
Dies kann durch Anzeige entsprechender Informationen, z. B. des Prozentsatzes der Fertigstellung,
nach jeder Iteration bzw. jedem Schritt geschehen.
Um Layoutereignisse zu empfangen, die während des Layouts eintreten, müssen Sie eine Verbindung
(mit dojo.connect) zur entsprechenden Methode
<onEvent>
herstellen.
Die folgenden Ereignisse werden ausgelöst:
- onLayoutStepPerformed(layoutStarted, layoutFinished): Ein Ereignis des Typs "layout step performed" (Layoutschritt ausgeführt) zeigt an, wenn ein Schritt in der Graphenlayoutausführung aufgerufen wurde. Es zeigt auch an, wenn das Layout beendet ist oder gestoppt wird.
- onAttached(): Dieses Ereignis wird ausgelöst, wenn das Graphenlayout einem Graphenlayoutmodell zugeordnet wird. Ein Graphenlayout muss einem Graphenlayoutmodell zugeordnet sein, damit es ausgeführt werden kann.
- onDetached(): Dieses Ereignis wird ausgelöst, wenn die Zuordnung des Graphenlayouts zu einem Graphenlayoutmodell aufgehoben wird.
Für den Empfang von Graphenlayoutereignissen müssen Sie eine Listenerfunktion implementieren und
diese (mit dojo.connect) bei der Graphenlayoutinstanz registrieren.
Weitere Informationen finden Sie unter Graphenlayoutbericht verwenden. Auf diese Weise
können Sie Informationen zum aktuellen Status des Layoutberichts einlesen.
(Sie können diese Informationen beispielsweise nach jeder Iteration bzw. jedem Schritt des
Layoutalgorithmus einlesen.)
Das folgende Beispiel veranschaulicht, wie ein Listener für Layoutereignisse implementiert und verbunden wird.
dojo.connect(layout, "onLayoutStepPerformed", function(layoutStarted, layoutFinished){ console.log("started = " + layoutStarted + " finished = " + layoutFinished); console.log("percentage of completion: " + layout.getLayoutReport().getPercentageComplete()); });
Listener für Parameterereignisse
Der Mechanismus mit Listenern für Parameterereignisse ist eine Möglichkeit,
den Benutzer darüber zu informieren, dass Layoutparameter geändert wurden.
Um Layoutparametereignisse zu empfangen, müssen Sie eine Listenerfunktion implementieren und diese
durch Herstellen einer Verbindung zum onParameterChanged-Ereignis
registrieren.
Die folgenden Ereignisse können empfangen werden:
- ibm_ilog.graphlayout.GraphLayout.onObjectParameterChanged(nodeOrLink, parameterName): Dieses Ereignis wird ausgelöste, wenn sich ein lokaler Layoutparameter (d. h. ein Parameter, der für einen bestimmten Knoten oder Link gilt) ändert.
- ibm_ilog.graphlayout.GraphLayout.onParameterChanged(parameterName): Dieses Ereignis wird ausgelöst, wenn sich ein globaler Layoutparameter ändert.
Das folgende Beispiel veranschaulicht, wie ein Listener für Layoutparametereignisse implementiert wird.
dojo.connect(layout, "onParameterChanged", function(parameterName){ console.log("parameter " + parameterName + " has changed"); });