Si la direction de flux est vers le bas, le niveau 0 est le plus élevé dans le tracé. Dans un tel agencement, vous pouvez indiquer à l'aide de contraintes de niveau relatif qu'un noeud
doit être au-dessus ou au-dessous d'un autre noeud. Si la direction de flux est vers la droite, le niveau 0 est le plus situé à gauche dans le tracé.
Dans ce cas, vous pouvez indiquer à l'aide de contraintes de niveau relatif qu'un noeud doit se trouver à gauche ou à droite d'une autre noeud.
Appelez :
layout.addConstraint( new ibm_ilog.graphlayout.hierarchical.HierarchicalRelativeLevelConstraint(nodeA, nodeB, priority));
Cela force
nodeA
à se placer à
un niveau avec un index plus petit que nodeB
. Etant donné que les contraintes de niveau relatif sont en concurrence entre elles, vous devez indiquer la priorité de chaque contrainte. En fait, les liens imposent également des
contraintes sur le système et la priorité de lien a le même impact que la
priorité de contrainte. Un lien de priorité 10 force (généralement) son noeud
source (à moins que des ports ne soient spécifiés) à un niveau inférieur à celui de son noeud cible. Pour forcer le noeud source à un niveau supérieur à celui du noeud cible, vous devez créer une contrainte dont la priorité est supérieure à celle du lien. Par exemple, pour vous assurer que les contraintes sont satisfaites même lorsqu'il y a de nombreux liens, vous pouvez utiliser des priorités de lien comprises entre
0 et 10 et des priorités de contrainte comprises entre 1000 et 10 000. Vous pouvez également créer une contrainte de niveau relatif entre les groupes de noeuds.
Appelez :
layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalRelativeLevelConstraint(nodeGroup1, nodeGroup2, priority));