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).

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.