Diseño recursivo

Dojo Diagrammer admite gráficos anidados, es decir, puede representar gráficos que contienen nodos que son gráficos.
Un gráfico que es un nodo en otro gráfico se denomina subgráfico. Los enlaces que conectan nodos de subgráficos diferentes se denominan enlaces intergráficos. En Diseño jerárquico recursivo en gráficos anidados con estilo de enlace polilínea , todos los enlaces rojos son enlaces intergráficos y todos los enlaces negros son enlaces normales. Esto se explica en detalle en Diseños anidados.
El diseño jerárquico puede tratar un gráfico anidado a la vez, colocando todos los nodos anidados y direccionando todos los enlaces, incluidos los enlaces intergráficos.
Para habilitar la modalidad recursiva:
Utilice este método:
layout.setRecursiveLayoutMode(enable);
La modalidad de diseño recursivo requiere que todos los subgráficos se diseñen en el mismo estilo. Por ejemplo, todos deben utilizar la misma dirección del flujo. Esto se realiza automáticamente si no se especifican diseños individuales por subgráfico. Si se necesitan estilos de diseño distintos para cada subgráfico, debe especificar un diseño individual por subgráfico. Para obtener más información, consulte Recursividad avanzada: combinación de distintos diseños en un gráfico anidado .
En este caso, el diseño jerárquico no puede direccionar los enlaces intergráficos y debe utilizar un algoritmo Diseño de enlaces para direccionar los enlaces intergráficos.
Diseño
jerárquico recursivo — estilo de enlace polilínea
Diseño jerárquico recursivo en gráficos anidados con estilo de enlace polilínea
Diseño
jerárquico recursivo — ortogonal, estilo de
enlace
Diseño jerárquico recursivo en gráfico anidado con estilo de enlace ortogonal

Cómo establecer los parámetros de diseño en la modalidad recursiva

En la modalidad de diseño recursivo, el diseño jerárquico está conectado al gráfico de nivel superior. Deben definirse parámetros de diseño globales en esta instancia de diseño. Deben definirse parámetros de diseño para cada nodo o para cada enlace de la siguiente manera:
var sublayout = new ibm_ilog.graphlayout.hierarchical.HierarchicalLayout();
subgraph.setNodeLayout(sublayout);
// The configuration of per node or per link parameters must be
// done after attaching the layout to the subgraph
sublayout.setSpecNodeLevelIndex(node, 5);
Esto significa que los parámetros de diseño para cada nodo o para cada enlace no se pueden establecer en el diseño de nivel superior, sino que deben establecerse en el subdiseño que diseña el subgráfico.
Las restricciones de diseño de la modalidad de diseño recursivo funcionan sólo entre los nodos que pertenecen al mismo subgráfico. Se hace caso omiso de las restricciones entre los nodos de subgráficos diferentes. Los conceptos EAST, WEST, NORTH y SOUTH de las restricciones de extremo se interpretan en relación al subgráfico, no al gráfico global. De forma parecida a los parámetros de diseño para cada nodo o para cada enlace, la restricción debe instalarse en la instancia de diseño del subgráfico del nodo.
// node1, node2 is directly contained in subgraph
var sublayout = topLevelLayout.getRecursiveLayout().getLayout(subgraph);
sublayout.addConstraint(new ibm_ilog.graphlayout.SameLevelConstraint(node1, 
  node2));
Las restricciones de carril no funcionan en la modalidad de diseño recursivo.