Parâmetros Específicos (para todos os modos de layout de árvore)

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