O Layout Hierárquico permite especificar o índice de nível
e o índice de posição de um nó.
Especifique o índice de nível e de posição de um nó
gráfico da seguinte maneira:
layout.setSpecNodeLevelIndex(node, 5); layout.setSpecNodePositionIndex(node, 33);
Como estes índices são usados depende da topologia do gráfico
e das restrições adicionais. Por exemplo, o índice de nível especificado
pode estar em conflito com algum ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.HierarchicalLevelRangeConstraint ou ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.HierarchicalSameLevelConstraint. Neste caso, as prioridades de restrição determinam
como o conflito será resolvido (consulte Prioridades de Restrição (HL)). Se o modo incremental
estiver ativado, os índices de nível e de posição do nó especificado
serão ignorados, porque o modo incremental tenta preservar
posições do nó antigas. Também é possível obter os índices de nós
que foram calculados durante o layout.
Índice de Nível Calculado
O algoritmo de layout permite acessar o índice de nível
que foi calculado para um nó por um layout anterior. Use o método:
var index = layout.getCalcNodeLevelIndex(node);
Se o nó nunca foi organizado, este método retornará
-1
. Caso contrário, ele retornará o índice de nível anterior do nó. Em um aplicativo que especifica parâmetros de layout totalmente
de forma programática, o método pode ser usado para especificar o índice de nível para o próximo
layout da seguinte maneira:
var index = layout.getCalcNodeLevelIndex(node); layout.setSpecNodeLevelIndex(node, index);
It ensures that the node is placed at the same level
as in the previous layout.
Se o gráfico for desanexado do algoritmo de layout, o índice
de nível calculado de um nó será configurado de volta para
-1
. Nota
Observe as diferenças entre os métodos getCalcNodeLevelIndex e getSpecNodeLevelIndex. O primeiro retorna o índice de nível calculado
pelo layout anterior. O segundo retorna o índice de nível especificado,
mesmo que não exista nenhum layout anterior.
Por exemplo, considere dois nós A e B. O nó A não possui
nenhum índice de nível especificado e o nó B possui um índice de nível especificado 5.
Antes do primeiro layout, o método
getCalcNodeLevelIndex
retorna
-1 para os dois nós, porque os níveis ainda não foram calculados. However, getSpecNodeLevelIndex
returns
-1 for A and 5 for B. After the first layout, node A can be placed
at level 4. Now, getCalcNodeLevelIndex
returns
4 for node A and 5 for node B and getSpecNodeLevelIndex
still returns -1 for A and 5 for B. Índice de Posição Calculado
O algoritmo de layout permite acessar o índice de posição
em um nível que foi calculado para um nó por um
layout anterior. Use o método:
var index = layout.getCalcNodePositionIndex(node);
Se o nó nunca foi organizado, este método retornará -1.
Caso contrário, ele retornará o índice de posição anterior do nó
em seu nível.
Para assegurar que o nó seja posicionado no mesmo nível na mesma
posição relativa que no layout anterior, use o seguinte código
em um aplicativo que especifica parâmetros de layout totalmente
de forma programática:
layout.setSpecNodeLevelIndex(node, layout.getCalcNodeLevelIndex(node)); layout.setSpecNodePositionIndex(node, layout.getCalcNodePositionIndex(node));
Este código de exemplo funcionará apenas se o layout do componente conectado
genérico estiver desativado e os lados da porta
EAST
ou WEST
não forem usados no layout. Se o gráfico for desanexado do algoritmo de layout, o índice de posição
calculado de um nó será configurado de volta para -1.
Nota
Observe as diferenças entre os métodos getCalcNodePositionIndex e setSpecNodePositionIndex. O primeiro retorna
o índice de posição calculado pelo layout anterior e -1 se não houver nenhum
layout anterior. O segundo retorna o índice de posição especificado, mesmo que
não exista nenhum layout anterior. Este comportamento é semelhante ao comportamento
do índice de nível especificado e calculado (consulte Índice de Nível Calculado).