Na Etapa 1 do algoritmo de layout (a fase de nivelamento),
os nós são particionados em níveis. Estes níveis são indexados a partir
de 0. Por exemplo, quando a direção do fluxo for para a parte inferior, os nós
do índice de nível 0 serão posicionados na linha do nível horizontal superior
e os nós com um índice de nível maior serão colocados em uma posição
inferior aos nós com um índice de nível menor (consulte Índices de nível e de posição). O algoritmo de layout
calcula estes índices de níveis automaticamente.
É possível escolher como os níveis serão particionados, especificando
o intervalo do índice de nível para alguns nós. Os nós são posicionados
nos níveis cujo índice está no intervalo especificado. Você deve especificar
os índices mínimo e máximo do nível.
Para especificar os índices mínimo e máximo do nível:
Chame:
layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalLevelRangeConstraint(node, 5, 7));
Se desejar posicionar o nó exatamente no nível 5, chame:
layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalLevelRangeConstraint(node, 5, 5));
Como alternativa, é possível chamar:
layout.setSpecNodeLevelIndex(node, 5);
which has the same meaning.
Se desejar forçar o nó para o nível 5 e acima, configure
UNSPECIFIED
como o nível máximo. Chame:
layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalLevelRangeConstraint(node, 5, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.UNSPECIFIED));
Se desejar forçar o nó para o nível 5 e abaixo (ou
seja, nível 0, ..., 5), configure
UNSPECIFIED
como o nível mínimo. Por exemplo:layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalLevelRangeConstraint(node, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.UNSPECIFIED, 5));
Neste caso específico, também é possível usar zero (0)
como o nível mínimo, porque os índices de nível começam em 0.
É possível aplicar a restrição a um grupo de vários nós
de uma vez. It has the same effect as specifying the constraint for each
single node of the group, but it is more memory efficient and convenient.
For instance, if you want to force the group of three nodes to the
levels 5 - 7:
Para especificar estes parâmetros:
Crie um objeto
NodeGroup
(consulte Grupos de Nós) dos três nós
e inclua-o na restrição da seguinte maneira: layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalLevelRangeConstraint(nodeGroup, 5, 7));