Puede aplicar el mismo diseño si se cumplen las
condiciones siguientes:
- El mismo algoritmo de diseño debe aplicarse al gráfico superior y a todos sus subgráficos.
- Los valores del algoritmo de diseño (es decir, los parámetros de diseño) deben ser los mismos para el gráfico superior y para todos los subgráficos.
En la figura siguiente se muestra un ejemplo en el que
se aplica un Diseño de árbol al gráfico superior y a todos sus
subgráficos. Además, los valores del algoritmo Diseño de árbol son
los mismos para todos los gráficos: la aplicación no necesita, por
ejemplo, un dirección del flujo en el gráfico superior y otra
distinta en los subgráficos.

Ejemplo de diseño recursivo de un gráfico anidado
Obtener estos diseños recursivos es fácil. Debe
especificar el diseño de gráficos en la instancia de
Diagram o
Graph de nivel superior
y llamar al método
performGraphLayout. El
diseño se ejecuta de forma recursiva, porque el argumento
recursive del método es
true
de forma predeterminada. Mecanismo interno
El mecanismo interno se basa en el principio de que una
instancia de diseño sólo se utiliza para un gráfico y no se reutiliza
para sus subgráficos. Por lo tanto, la instancia de Diseño de árbol
se “clona” automáticamente utilizando el método
ibm_ilog.graphlayout.GraphLayout.copy().
El diseño de gráficos se aplica a un modelo de gráfico y
el mismo principio se aplica a los modelos de gráficos: una instancia
de modelo de gráfico se utiliza sólo para un gráfico y no se
reutiliza para subgráficos.
Los modelos de gráficos de los subgráficos se crean
mediante llamadas al método
ibm_ilog.graphlayout.GraphLayout.copy(),
que a su vez crea el modelo de gráficos utilizando el método
ibm_ilog.graphlayout.GraphLayout.getGraphModel().
Todas estas operaciones se realizan automáticamente, de
forma transparente. Todo lo que tiene que hacer es
llamar al método
performGraphLayout
con el
argumento establecido en
recursive
true
u omitirlo. Ejemplo de código de Dojo
En el ejemplo de código siguiente se muestra cómo
aplicar un solo algoritmo de diseño a un gráfico anidado:
var diagram = dijit.byId("diagram"); var treeLayout = new ibm_ilog.graphlayout.tree.TreeLayout(); diagram.attr("nodeLayout", treeLayout); diagram.performGraphLayout(true);