Restricciones de intervalo de nivel (DJ)

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));