Diseño de componentes conectados de un gráfico no conexo.

IBM® ILOG® Dojo Diagrammer ofrece soporte especial para el diseño de un disconnected graph.
Si un gráfico se compone de varios connected components o contiene nodos aislados (nodos sin ningún enlace), puede ser aconsejable aplicar el algoritmo de diseño por separado en cada componente conectado y, a continuación, colocar los componentes conectados utilizando un algoritmo de diseño especializado (normalmente, ibm_ilog.graphlayout.grid.GridLayout). En la figura siguiente se muestra un ejemplo de un gráfico que contiene cuatro componentes conectados. Al habilitar el diseño de los componentes conectados en la instancia de diseño normal (aquí, ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout), los componentes conectados se identifican automáticamente y se presentan individualmente. Por último, los cuatro componentes conectados se colocan utilizando un algoritmo de colocación muy personalizable (ibm_ilog.graphlayout.grid.GridLayout).
Ejemplo
de un gráfico con cuatro componentes conectados presentados
individualmente y colocados utilizando un algoritmo de colocación muy
personalizable
Diseño automático de componentes conectados en un gráfico no conexo.
Para indicar si una subclase de ibm_ilog.graphlayout.GraphLayout admite esta característica, utilice su método:
supportsLayoutOfConnectedComponents()
La implementación predeterminada devuelve false. Una subclase puede sustituir este método para que devuelva true indicando que admite esta característica.
Puede habilitar el diseño de los componentes conectados mediante el método setLayoutOfConnectedComponentsEnabled(true).
Para obtener el valor actual:
var enabled = layout.isLayoutOfConnectedComponentsEnabled();
El valor predeterminado es el valor devuelto por el método siguiente:
isLayoutOfConnectedComponentsEnabledByDefault()
La implementación predeterminada de este método en ibm_ilog.graphlayout.GraphLayout devuelve false. Para algunas de las clases de diseño, es conveniente que esta característica esté habilitada de forma predeterminada y que sustituyan este método para que devuelva true.
Si está habilitado en una clase de diseño que admite esta característica, el método performLayout de la clase ibm_ilog.graphlayout.GraphLayout divide el modelo de gráfico conectado en componentes conectados y representa cada componente conectado por separado.
¿Cómo funciona la característica de diseño de componentes conectados cuando este mecanismo está habilitado en las clases de diseño que admiten esta característica? En lugar de ejecutar el diseño en todo el gráfico, el método performLayout primero divide el gráfico en componentes conectados.
A continuación, cada componente conectado se diseña por separado mediante una llamada del método layout. Para ello, el gráfico conectado se ha transformado temporalmente en gráficos generados internamente correspondientes a cada uno de los componentes conectados del gráfico original.
Por último, la instancia de diseño especificada por el método setLayoutOfConnectedComponents:
layout.setLayoutOfConnectedComponents(connectedComponentsLayout);
se utiliza para colocar los componentes conectados. Para especificar la instancia de diseño que coloca los componentes conectados, llame al método setLayoutOfConnectedComponents.
Si no se especifica ninguna instancia de diseño utilizando este método, el método getLayoutOfConnectedComponents devuelve una instancia de ibm_ilog.graphlayout.grid.GridLayout. El parámetro región de diseño se establece de forma predeterminada en el rectángulo (0, 0, 800, 800). El parámetro modalidad de diseño se establece en ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_ROWS.
Nota
Los diseños de árbol y jerárquico contienen soporte incorporado para los gráficos no conexos. En el caso de los diseños de árbol y jerárquico, el resultado puede ser distinto del mecanismo genérico (la característica de diseño de componentes conectados) proporcionado por la clase base ibm_ilog.graphlayout.GraphLayout. Dependiendo de sus necesidades particulares, puede utilizar el mecanismo genérico o el soporte incorporado.