Contraintes d'extrémité (HL)

Pour forcer un noeud au premier niveau, vous pouvez indiquer :
layout.setSpecNodeLevelIndex(node, 0);
Toutefois, vous ne pouvez pas indiquer un index de niveau pour le dernier niveau car au début de l'agencement le nombre de niveaux qui sont créés est inconnu. Il est déconseillé d'indiquer :
layout.setSpecNodeLevelIndex(node, Number.MAX_VALUE);
car cela crée de nombreux niveaux vides entre les niveaux utilisés et le dernier niveau. Même si ces niveaux vides sont supprimés au cours des étapes de post-traitement, cela a une influence sur la vitesse et la qualité de l'agencement. (En fait, l'algorithme manque de mémoire si vous définissez une valeur trop élevée pour l'index de niveau spécifié.)
Grâce aux contraintes, vous pouvez obtenir le même effet de manière plus efficace.
Pour forcer un noeud au premier niveau :
Appelez :
layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalExtremityConstraint(node, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.NORTH));
Pour forcer un noeud au dernier niveau :
Appelez :
layout.addConstraint(
    new ibm_ilog.graphlayout.hierarchical.HierarchicalExtremityConstraint(node, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.SOUTH));
Grâce aux directions de compas dans un souci de commodité (voir Paramètre Côtés de port (HL)), le premier niveau indique le pôle nord et et le dernier niveau indique le pôle sud. Vous pouvez également indiquer des contraintes d'extrémité pour les côtés est et ouest :
layout.addConstraint(
    new ibm_ilog.graphlayout.hierarchical.HierarchicalExtremityConstraint(node1, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.EAST));
layout.addConstraint(
    new ibm_ilog.graphlayout.hierarchical.HierarchicalExtremityConstraint(node2, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.WEST));
La contrainte d'extrémité ouest force le noeud à l'index de position le plus faible au sein de son niveau, la contrainte d'extrémité est force le noeud à l'index de position le plus élevé au sein de son niveau. Les index de position indiquent la position relative au sein du niveau. Par exemple, un noeud avec une contrainte d'extrémité ouest est le noeud le plus à gauche au son de son niveau, si la direction de flux est vers le bas. Toutefois, cela n'a aucune incidence sur les autres niveaux ; il peut y avoir un noeud dans un autre niveau qui est encore placé plus loin sur la gauche.
La figure ci-après présente quelques contrainte d'extrémité.
layout-Hierarchical-extrconst107.gif
Schémas de contraintes d'extrémité