Application d'un agencement de graphe

IBM® ILOG® Dojo Diagrammer propose des algorithmes d'agencement de graphe intégrés qui vous permettent de transformer l'apparence de vos graphes. Le composant Graph dispose de méthodes pour configurer et exécuter des algorithmes d'agencement de graphe que vous pouvez appliquer au contenu de votre graphe.
Utilisez la fonction setNodeLayout pour spécifier un algorithme d'agencement de graphe qui est exécuté sur le contenu d'un graphe. L'algorithme est représenté par l'une des sous-classes de la classe ibm_ilog.graphlayout.GraphLayout. Utilisez la fonction performGraphLayout pour exécuter l'agencement de graphe sélectionné sur le graphe.
Pour appliquer un agencement basé sur les forces (Force-Directed) à un graphe :
  • Utilisez le code suivant :
    dojo.require("ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout");
    ...
             var layout = new ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout();
             graph.setNodeLayout(layout);
             graph.performGraphLayout();
Voici le graphe résultant après avoir exécuté l'agencement basé sur les forces :
Graphe constitué de quatre noeuds rectangulaires, chacun doté d'un libellé : Node 1, Node 2, Node 3, Node 4. Node 1 est situé à gauche, Node 2 en haut, Node 3 en bas et Node 4 à droite du graphe.
Un lien connecte le bord supérieur de Node 1 au bord inférieur gauche de Node 2. Un autre lien connecte le bord inférieur de Node 1 au bord supérieur gauche de Node 3. Un lien connecte le bord inférieur droit de Node 2 au bord supérieur droit de Node 4. Un lien connecte le bord supérieur droit de Node 3 au bord inférieur de Node 4.
Le composant Graph fournit d'autres méthodes associées à l'agencement de graphe :
  • setLinkLayout(layout) spécifie un algorithme d'agencement de graphe pour agencer les liens d'un graphe.
  • setAutomaticNodeLayout(true/false) et setAutomaticLinkLayout(true/false) indiquent si l'agencement de graphe doit être exécuté automatiquement chaque fois que le graphe est modifié, par exemple lorsqu'un noeud est déplacé.
  • setNodeLayoutActive(true/false) et setLinkLayoutActive(true/false) activent ou désactivent sélectivement les algorithmes d'agencement de graphe.
Pour plus d'informations sur les algorithmes d'agencement de graphe disponibles, voir Présentation de l'agencement de graphe.