Restricciones de extremo (DJ)

Para obligar a colocar un nodo en el primer nivel, puede especificar:
layout.setSpecNodeLevelIndex(node, 0);
Sin embargo, no se puede especificar un índice de nivel para el último nivel porque al principio del diseño no se sabe cuántos niveles se han creado. No es aconsejable especificar:
layout.setSpecNodeLevelIndex(node, Number.MAX_VALUE);
porque crea muchos niveles vacíos entre los niveles utilizados y el último. Aunque estos niveles vacíos se eliminen en pasos posteriores del proceso, esto afecta a la velocidad y a la calidad del diseño. (De hecho, el algoritmo se queda sin memoria si se establece un índice de nivel exagerado).
Mediante restricciones se puede conseguir el mismo efecto con más eficacia.
Para obligar a colocar un nodo en el primer nivel:
Llame a:
layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalExtremityConstraint(node, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.NORTH));
Para obligar a colocar un nodo en el último nivel:
Llame a:
layout.addConstraint(
    new ibm_ilog.graphlayout.hierarchical.HierarchicalExtremityConstraint(node, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.SOUTH));
Con los puntos cardinales como referencia (consulte Parámetro caras del puerto (DJ)), el primer nivel indica el polo norte y el último nivel indica el polo sur. También puede especificar restricciones de extremo para los lados este y oeste:
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 restricción de extremo oeste obliga a colocar el nodo en el índice de posición más bajo dentro de su nivel, y restricción de extremo este obliga a colocar el nodo en el índice de posición más alto dentro de su nivel. Los índices de posición especifican la posición relativa dentro del nivel. Por ejemplo, un nodo con la restricción de extremo oeste es el nodo de más a la izquierda dentro de su nivel, si la dirección del flujo es hacia abajo. Sin embargo, esto no afecta a los demás niveles; puede haber un nodo en otro nivel que esté colocado más a la izquierda.
En la figura siguiente se muestran algunas restricciones de extremo.
layout-Hierarchical-extrconst107.gif
Esquema de restricciones de extremo