En el Paso 1 del algoritmo de diseño (la fase de
nivelación), los nodos se dividen en niveles. Estos niveles se
indexan comenzando por 0. Por ejemplo, cuando la dirección del flujo
es hacia abajo, los nodos del índice de nivel 0 se colocan en la
línea del nivel horizontal superior y los nodos que tienen un índice
de nivel más alto se colocan en una posición inferior con respecto a
los nodos que tienen un índice de nivel más bajo (consulte
Índices de nivel y posición).
El algoritmo de diseño calcula estos índices de nivel
automáticamente.
Puede elegir cómo se dividen los niveles especificando
el intervalo del índice de nivel para algunos nodos. Los nodos se
colocan en los niveles cuyo índice se encuentra en el intervalo
especificado. Se debe especificar los índices mínimo y máximo del
nivel.
Para especificar los índices mínimo y máximo del nivel:
Llame a:
layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalLevelRangeConstraint(node, 5, 7));
Si desea colocar el nodo exactamente en el nivel 5,
llame a:
layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalLevelRangeConstraint(node, 5, 5));
Opcionalmente, puede llamar a:
layout.setSpecNodeLevelIndex(node, 5);
que tiene el mismo significado.
Si desea obligar al que el nodo se coloque en el nivel 5
y superiores, establezca
UNSPECIFIED
como nivel máximo. Llame a:
layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalLevelRangeConstraint(node, 5, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.UNSPECIFIED));
Si desea obligar a que el nodo se coloque en el nivel 5
e inferiores (es decir, en los niveles 0 a 5), establezca
UNSPECIFIED
como nivel mínimo.
Por ejemplo:layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalLevelRangeConstraint(node, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.UNSPECIFIED, 5));
En este caso concreto, también puede utilizar cero (0)
como el nivel mínimo porque los índices de nivel empiezan en 0.
Puede aplicar la restricción a un grupo de varios nodos
a la vez. Esto tiene el mismo efecto que especificar la restricción
para cada nodo del grupo, pero utiliza mejor la memoria y es más
práctico. Por ejemplo, si desea obligar a un grupo de tres nodos a
colocarse en los niveles 5 a 7:
Para especificar estos parámetros:
Cree un objeto
NodeGroup
(consulte
Grupos de nodos )
de los tres nodos y añádalo a la restricción de la siguiente manera: layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalLevelRangeConstraint(nodeGroup, 5, 7));