Os parâmetros a seguir são específicos da classe ibm_ilog.graphlayout.tree.TreeLayout. Eles se aplicam a todos os modos de layout.
Nó-raiz (TL)
O layout final é influenciado principalmente pela opção do
nó-raiz.
O nó-raiz é colocado em uma posição proeminente. Por exemplo,
em um desenho descendente com o modo de layout livre, ele é posicionado na
parte superior da árvore. Com um modo de layout radial, ele é posicionado
no centro da árvore.
A árvore de ampliação é calculada começando com o nó-raiz. Se o gráfico estiver desconectado, o algoritmo de layout precisará de um
nó-raiz para cada componente conectado.
O algoritmo de layout seleciona automaticamente um nó-raiz
quando necessário. Ele usa uma heurística que calcula preferências para
que todos os nós se tornem uma raiz. Ele escolhe o nó com a preferência
mais alta.
A heurística fornece aos nós sem links de entrada a preferência mais alta
e aos nós folha sem links de saída a preferência mais baixa. Portanto, em
uma árvore direcionada, a raiz canônica é sempre escolhida
automaticamente.
É possível influenciar a opção do nó-raiz.
Para configurar um nó explicitamente como a raiz:
Use o método setRoot:
treeLayout.setRoot(node);
Isto fornece ao nó a preferência máxima para se tornar a raiz
durante o layout. Se apenas um nó for especificado desta maneira, o
algoritmo selecionará este nó. Se vários nós do mesmo componente conectado
forem especificados desta maneira, o algoritmo de layout escolherá um
deles como a raiz.
Para Especialistas: Opções Adicionais para Nós-raiz (TL)
O algoritmo de layout gerencia uma lista de nós-raiz que
foram especificados pelo método
setRoot.
Para obter os nós nesta lista, use o método getSpecRoots:
var roots = treeLayout.getSpecRoots(); while(roots.hasNext()){ var root = roots.next(); ... }
After layout, you can also retrieve the list of root
nodes that were used by the algorithm. Esta lista não é
necessariamente igual à lista de raízes especificadas. Por exemplo, ela
contém os nós-raiz escolhidos se nenhum tiver sido especificado ou se
muitos tiverem sido especificados.
To obtain the root nodes that were used by the algorithm,
use the method getCalcRoots:
var roots = treeLayout.getCalcRoots(); while(roots.hasNext()){ var root = roots.next(); ... }
Este exemplo mostra como iterar pelos nós-raiz calculados e
imprimir as preferências do nó-raiz:
var roots = treeLayout.getCalcRoots(); while(roots.hasNext()){ var root = roots.next(); console.log("Preference: " + treeLayout.getRootPreference(root)); }
Para manipular diretamente o valor preferencial do nó-raiz de
um nó individual:
Use o método:
treeLayout.setRootPreference(node, 100);
Neste caso, o layout usa o valor especificado em vez da
preferência calculada heuristicamente para o nó. O valor preferencial
normal deve estar entre
0
e 10000
. Especificar um nó-raiz explicitamente corresponde a configurar o valor preferencial
como 10000
. Se desejar proibir um nó
de se tornar a raiz, especifique um valor preferencial de zero
(0
). Um valor preferencial negativo indica que o algoritmo de
layout deve recalcular a preferência do nó-raiz usando a heurística.
Se uma raiz foi especificada pelo método
setRoot
, mas este nó não for mais a
raiz em layouts subsequentes, use a seguinte chamada para limpar a
configuração do nó-raiz:treeLayout.setRootPreference(node, -1);
Esta chamada também remove o nó da lista de raízes
especificadas.
Parâmetros de Posição (TL)
Para configurar a posição do canto superior
esquerdo do layout como (10, 10):
Use o método:
treeLayout.setPosition({x:10, y:10}, false);
Se o gráfico consistir apenas em uma única árvore, geralmente
será mais conveniente configurar então a posição do nó-raiz. Para isso:
Use o mesmo método e transmita
true
em vez de false
: treeLayout.setPosition({x:10, y:10}, true);
Se nenhuma posição for especificada, o layout manterá o
nó-raiz em sua posição anterior.
Usando Direções da Bússola para Parâmetros de Layout Posicionais (TL)
As direções da bússola, norte,
sul, leste e oeste, são
usadas para simplificar as explicações dos parâmetros de layout. O centro do nó-raiz
de uma árvore é considerado o polo norte.
Em modos de layout não radiais, a direção do fluxo do link
sempre corresponde ao sul. Se o nó-raiz estiver posicionado na parte
superior do desenho, o norte estará na parte superior, o sul na parte
inferior, o leste à direita e o oeste à esquerda. Se o nó-raiz estiver
posicionado na borda esquerda do desenho, o norte estará à esquerda, o sul
à direita, o leste na parte superior e o oeste na parte inferior.
Em modos de layout radiais, o nó-raiz é posicionado no centro
do desenho. O significado de norte e sul depende da posição em relação à
raiz: o lado norte do nó é o lado mais próximo da raiz e o lado sul é o
lado mais distante da raiz. A direção leste está no sentido anti-horário em relação à raiz e a direção
oeste está no sentido horário em relação à raiz. It is similar to
a cartographic map of a real globe that shows the area of the north
pole as if you were looking down at the top of the globe.
As direções da bússola são usadas para fornecer convenções de
nomenclatura uniformes para algumas opções de layout. Elas ocorrem nas
opções de alinhamento, na opção de alinhamento de nível e no recurso de
vizinhança a leste/oeste, que são explicados posteriormente. Em
Direções do fluxo
e
Modo de layout radial,
os ícones da bússola mostram as direções da bússola nestes desenhos.
Modos de Layout (TL)
O algoritmo de layout de árvore possui vários modos de
layout. O exemplo a seguir mostra como especificar o modo de layout.
Use o método setLayoutMode:
treeLayout.setLayoutMode(ibm_ilog.graphlayout.tree.TreeLayout.RADIAL);
The available layout modes are:
ibm_ilog.graphlayout.tree.TreeLayout.FREE
(o padrão)ibm_ilog.graphlayout.tree.TreeLayout.LEVEL
ibm_ilog.graphlayout.tree.TreeLayout.RADIAL
ibm_ilog.graphlayout.tree.TreeLayout.ALTERNATING_RADIAL
ibm_ilog.graphlayout.tree.TreeLayout.BALLOON
ibm_ilog.graphlayout.tree.TreeLayout.TIP_OVER
ibm_ilog.graphlayout.tree.TreeLayout.TIP_ROOTS_OVER
ibm_ilog.graphlayout.tree.TreeLayout.TIP_LEAVES_OVER
ibm_ilog.graphlayout.tree.TreeLayout.TIP_ROOTS_AND_LEAVES_OVER