Utilisation des programmes d'écoute d'événement

Toutes les classes d'agencement prennent en charge deux types d'événements : les événements d'agencement et les événements de paramètre. Le mécanisme d'écoute fournit donc les éléments suivants :

Programmes d'écoute d'événement d'agencement de graphe

Le mécanisme d'écoute d'événement d'agencement fournit un moyen d'informer l'utilisateur de ce qui se produit lors de l'agencement. Parfois, l'exécution d'un algorithme d'agencement dure très longtemps, surtout dans le cas de graphes de grande taille. En outre, un algorithme peut ne pas atteindre la convergence dans certains cas. Quelle que soit la situation, l'utilisateur doit être informé des événements qui se produisent lors de l'agencement.
Ceci peut être réalisé en affichant les informations appropriées, telles que le pourcentage d'achèvement après chaque itération ou étape.
Pour recevoir les événements d'agencement fournis lors de l'agencement, vous devez vous connecter (à l'aide de dojo.connect) à la méthode d'événement ( <Event> ) appropriée.
Les événements suivants sont déclenchés :
  1. onLayoutStepPerformed(layoutStarted, layoutFinished) : Un événement d'étape d'agencement exécutée indique quand une étape de l'exécution de l'agencement de graphe est effectuée. Il indique également quand l'agencement s'est terminé ou s'est arrêté.
  2. onAttached() : Cet événement est déclenché lorsque l'agencement de graphe est associé à un modèle d'agencement de graphe. Un agencement de graphe doit être joint à un modèle d'agencement de graphe pour pouvoir être exécuté.
  3. onDetached() : Cet événement est déclenché lorsque l'agencement de graphe est détaché d'un modèle d'agencement de graphe.
Pour être à l'écoute des événements d'agencement de graphe, vous devez implémenter une fonction d'écoute et la connecter (à l'aide de dojo.connect) à la méthode appropriée de l'instance d'agencement de graphe.
Voir Utilisation d'un rapport d'agencement de graphe. Vous pouvez ainsi lire des informations sur l'état en cours du rapport d'agencement. (Par exemple, vous pouvez lire ces informations après chaque itération ou étape de l'algorithme d'agencement).
L'exemple suivant montre comment implémenter et connecter un programme d'écoute d'événement d'agencement :
dojo.connect(layout, "onLayoutStepPerformed", function(layoutStarted, layoutFinished){
 console.log("started = " + layoutStarted + " finished = " + layoutFinished);
 console.log("percentage of completion: " + layout.getLayoutReport().getPercentageComplete());
});

Programme d'écoute d'événement de paramètre

Le mécanisme d'écoute d'événement de paramètre d'agencement fournit un moyen d'informer l'utilisateur qu'un paramètre d'agencement a été modifié.
Pour recevoir les événements de paramètre d'agencement, vous devez implémenter une fonction d'écoute et l'enregistrer en la connectant à l'événementonParameterChanged.
Les événements suivants peuvent être reçus :
  1. ibm_ilog.graphlayout.GraphLayout.onObjectParameterChanged(nodeOrLink, parameterName) : Cet événement est déclenché chaque fois qu'un paramètre d'agencement local (un paramètre qui s'applique à un noeud ou un lien spécifique) est modifié.
  2. ibm_ilog.graphlayout.GraphLayout.onParameterChanged(parameterName) : Cet événement est déclenché chaque fois qu'un paramètre d'agencement global est modifié.
L'exemple suivant montre comment implémenter un programme d'écoute d'événement de paramètre d'agencement.
 dojo.connect(layout, "onParameterChanged", function(parameterName){
  console.log("parameter " + parameterName + " has changed");
 });