Pour forcer un groupe de noeuds à être au même niveau, vous pouvez également
indiquer une contrainte d'étalement de groupe avec une taille d'étalement de zéro (0). En général, la contrainte d'étalement de groupe force un groupe de noeuds sur k+1 niveaux successifs. Le nombre k correspond à la taille d'étalement. Il ne choisit pas l'index de niveau le plus faible ou le plus élevé du groupe, mais nécessite uniquement que les noeuds soient placés sur k niveaux au maximum. En fait, si k=0, tous les noeuds du groupe sont placés au même niveau.
Pour illustrer la contrainte d'étalement de groupe générale sur les noeuds portant l'ID “nodeA’, “nodeB” et “nodeC” :
Pour utiliser la contrainte d'étalement de groupe, appelez :
var nodeGroup = new ibm_ilog.graphlayout.hierarchical.HierarchicalNodeGroup(); nodeGroup.add(nodeA); nodeGroup.add(nodeB); nodeGroup.add(nodeC); layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalGroupSpreadConstraint(nodeGroup, 2));
La contrainte est satisfaite si l'index de niveau le plus élevé
pour
nodeA
, nodeB
et nodeC
ne correspond pas à plus de deux niveaux par rapport à l'index de niveau le plus faible des noeuds. Par exemple, la contrainte est satisfaite
si les index de niveau pour nodeA
, nodeB
et nodeC
sont 1, 2, 3, ou s'il s'agit des index 7,
8, 9, ou encore des index 16, 14, 15.
La contrainte est également satisfaite
si les trois noeuds sont placés au niveau 5, ou si deux des noeuds sont
placés au niveau 15 et le troisième noeud au niveau 13. La contrainte n'est pas
satisfaite si les index de niveau pour nodeA
, nodeB
et nodeC
sont 3, 5, 6, car dans ce cas
l'index le plus élevé (6) est supérieur de plus de deux niveaux à l'index le plus faible (3).