É possível aplicar o mesmo layout onde existam as duas
condições a seguir:
- O mesmo algoritmo de layout precisa ser aplicado ao gráfico superior e a todos os seus subgráficos.
- As configurações do algoritmo de layout (ou seja, os parâmetros de layout) precisam ser iguais para o gráfico superior e para todos os subgráficos.
A figura a seguir mostra um exemplo de onde um Layout de
Árvore é aplicado ao gráfico superior, bem como a todos os seus
subgráficos. Além disso, as configurações do algoritmo de Layout de Árvore
são iguais para todos os gráficos: o aplicativo não precisa, por exemplo,
de uma direção do fluxo no gráfico superior e de uma diferente nos
subgráficos.

Exemplo de um Layout Recursivo de um Gráfico Aninhado
Obtaining such recursive layouts is easy. Você
deve especificar o layout de gráfico na instância
Diagram ou
Graph de nível superior e
chamar o método
performGraphLayout. The layout is done recursively, because the recursive argument
of the method is
true
by default. Mecanismo Interno
O mecanismo interno é baseado no princípio de que uma
instância de layout é usada apenas para um gráfico e não é reutilizada
para seus subgráficos. Portanto, a instância de Layout de Árvore é automaticamente
“clonada” usando o método ibm_ilog.graphlayout.GraphLayout.copy().
O layout de gráfico é aplicado a um modelo de gráfico e o
mesmo princípio se aplica aos modelos de gráfico: uma instância de modelo
de gráfico é usada apenas para um gráfico e não é reutilizada para
subgráficos.
Os modelos de gráfico para os subgráficos são criados por chamadas
para o método ibm_ilog.graphlayout.GraphLayout.copy() que, por sua vez, cria o modelo de gráfico usando o método ibm_ilog.graphlayout.GraphLayout.getGraphModel().
All these operations are done automatically, in a transparent
way. Tudo o que você deve fazer é chamar o
método
performGraphLayout
com o
argumento recursive
configurado
como true
ou omitido. Exemplo de Código Dojo
O exemplo de código a seguir mostra como aplicar um único
algoritmo de layout a um gráfico aninhado:
var diagram = dijit.byId("diagram"); var treeLayout = new ibm_ilog.graphlayout.tree.TreeLayout(); diagram.attr("nodeLayout", treeLayout); diagram.performGraphLayout(true);