Agencement récursif

Dojo Diagrammer prend en charge des graphes imbriqués, c'est-à-dire qu'il peut restituer des graphes contenant des noeuds qui sont des graphes.
Un graphe qui est un noeud dans un autre graphe est appelé un sous-graphe. Les liens qui connectent les noeuds de différents sous-graphes sont appelés liens d'intergraphe. Dans Agencement hiérarchique récursif sur graphe imbriqué avec style de lien polyligne, tous les liens rouges sont des liens d'intergraphe et tous les liens noirs sont des liens normaux. Pour plus de détails, voir Agencements imbriqués.
L'agencement hiérarchique peut traiter un graphe imbriqué en une seule opération, en plaçant tous les noeuds et en routant tous les liens y compris les liens d'intergraphe.
Pour activer le mode récursif :
Utilisez la méthode suivante :
layout.setRecursiveLayoutMode(enable);
Le mode récursif nécessite que tous les sous-graphes soient agencés dans le même style. Par exemple, ils doivent tous utiliser la même direction de flux. Cela se produit automatiquement lorsque vous n'indiquez pas d'agencements individuels par sous-graphe. Si différents styles d'agencement sont nécessaires par sous-graphe, vous devez indiquer un agencement individuel par sous-graphe. Pour plus de détails, voir Récursivité avancée : combinaison de différents agencements dans un graphe imbriqué.
Dans ce cas, l'agencement hiérarchique ne peut pas router les liens d'intergraphe et vous devez utiliser un algorithme d'agencement de liens pour router les liens d'intergraphe.
Agencement hiérarchique récursif — style de lien polyligne
Agencement hiérarchique récursif sur graphe imbriqué avec style de lien polyligne
Agencement hiérarchique récursif — style de lien orthogonale
Agencement hiérarchique récursif sur graphe imbriqué avec style de lien orthogonal

Définition des paramètres d'agencement en mode récursif

En mode d'agencement récursif, l'agencement hiérarchique est relié au graphe de niveau supérieur. Les paramètres d'agencement globaux doivent être définis sur cette instance d'agencement. Les paramètres d'agencement par noeud ou par lien doivent être définis de la façon suivante :
var sublayout = new ibm_ilog.graphlayout.hierarchical.HierarchicalLayout();
subgraph.setNodeLayout(sublayout);
// The configuration of per node or per link parameters must be
// done after attaching the layout to the subgraph
sublayout.setSpecNodeLevelIndex(node, 5);
Cela signifie que les paramètres d'agencement par noeud ou par lien ne peuvent pas être définis sur l'agencement de niveau supérieur, mais doivent être définis sur le sous-agencement qui agence le sous-graphe.
Les contraintes d'agencement en mode d'agencement récursif fonctionnent uniquement entre les noeuds qui appartiennent au même sous-graphe. Les contraintes entre les noeuds de différents sous-graphes sont ignorées. Les concepts EST, OUEST, NORD, SUD des contrainte d'extrémité sont interprétés par rapport au sous-graphe, et non pas par rapport au graphe global. A l'instar des paramètres d'agencement par noeud ou par lien, la contrainte doit être installée au niveau de l'instance d'agencement du sous-graphe du noeud.
// node1, node2 is directly contained in subgraph
var sublayout = topLevelLayout.getRecursiveLayout().getLayout(subgraph);
sublayout.addConstraint(new ibm_ilog.graphlayout.SameLevelConstraint(node1, 
  node2));
Les contraintes de couloirs ne fonctionnent pas du tout en mode d'agencement récursif.