Los parámetros siguientes son específicos de la clase
ibm_ilog.graphlayout.tree.TreeLayout.
Se aplican a todas las modalidades de diseño.
Nodo raíz (DA)
El diseño final está influido ante todo por la opción
del nodo raíz.
El nodo raíz se coloca en una posición prominente. Por
ejemplo, en un dibujo de arriba abajo con la modalidad de diseño
libre, se coloca en la parte superior del árbol. Con una modalidad de
diseño radial, se coloca en el centro del árbol.
El árbol de expansión se calcula a partir del nodo raíz.
Si el gráfico no es conexo, el algoritmo de diseño necesita un nodo
raíz para cada componente conectado.
El algoritmo de diseño selecciona automáticamente un
nodo raíz cuando es necesario. Utiliza un método heurístico que
calcula las preferencias de todos los nodos para convertirse en nodo
raíz. Elige el nodo con la mayor preferencia. El método heurístico
otorga a los nodos sin enlaces de entrada la mayor preferencia y a
los nodos finales sin enlaces de salida la menor preferencia. De ahí que,
en un árbol dirigido, la raíz canónica siempre se elija
automáticamente.
Es posible influir en la elección del nodo raíz.
Para establecer un nodo explícitamente como el nodo
raíz:
Utilice el método setRoot:
treeLayout.setRoot(node);
Esto da al nodo la máxima preferencia para convertirse
en el nodo raíz durante el diseño. Si sólo se especifica un nodo de
este modo, el algoritmo seleccionará este nodo. Si se especifican de
este modo varios nodos del mismo componente conectado, el algoritmo
de diseño elige uno de ellos como nodo raíz.
Para expertos: opciones adicionales para nodos raíz (DA)
El algoritmo de diseño gestiona una lista de los nodos
raíz especificados por el método
setRoot.
Para obtener los nodos de esta lista, utilice el método
getSpecRoots:
var roots = treeLayout.getSpecRoots(); while(roots.hasNext()){ var root = roots.next(); ... }
Tras ejecutar el diseño, también puede recuperar la
lista de nodos raíz que ha utilizado el algoritmo. Esta
lista no es necesariamente la misma que la lista de nodos raíz
especificados. Por ejemplo, contiene los nodos raíz seleccionados si
no se ha especificado ninguno o si se han especificado demasiados.
Para obtener los nodos raíz que ha utilizado el
algoritmo, utilice el método
getCalcRoots:
var roots = treeLayout.getCalcRoots(); while(roots.hasNext()){ var root = roots.next(); ... }
En este ejemplo se muestra cómo iterar por los nodos
raíz calculados e imprimir las preferencias del nodo raíz:
var roots = treeLayout.getCalcRoots(); while(roots.hasNext()){ var root = roots.next(); console.log("Preference: " + treeLayout.getRootPreference(root)); }
Para manipular directamente el valor de preferencia de
nodo raíz de un nodo individual:
Utilice el método:
treeLayout.setRootPreference(node, 100);
En este caso, el diseño utiliza el valor especificado en
lugar de la preferencia calculada heurísticamente para el nodo. El
valor de preferencia normal debe estar comprendido entre
0
y
10000
. Especificar un nodo
raíz explícitamente equivale a establecer el valor de preferencia en
10000
. Si quiere impedir que
un nodo se convierta en nodo raíz, especifique un valor de
preferencia de cero (0
). Un valor de preferencia negativo indica que el algoritmo
de diseño debe volver a calcular la preferencia del nodo raíz
utilizando un método heurístico. Si en el método
setRoot
se ha especificado un
nodo raíz, pero este nodo ya no es el nodo raíz en diseños
posteriores, utilice la llamada siguiente para borrar el valor del
nodo raíz:treeLayout.setRootPreference(node, -1);
Esta llamada también elimina el nodo de la lista de
nodos raíz especificados.
Parámetros de posición (DA)
Para establecer la posición de la
esquina superior
izquierda del diseño en (10, 10):
Utilice el método:
treeLayout.setPosition({x:10, y:10}, false);
Si el gráfico consta de un solo árbol, suele ser más
útil establecer la posición del nodo raíz. Para ello:
Utilice el mismo método y pase
true
en lugar de
false
: treeLayout.setPosition({x:10, y:10}, true);
Si no se especifica ninguna posición, el diseño conserva
el nodo raíz en su posición anterior.
Utilizar los puntos cardinales para parámetros de diseño posicionales (DA)
Los puntos cardinales de la brújula
norte, sur, este y
oeste se utilizan
para simplificar las explicaciones de los parámetros de diseño. El
centro del nodo raíz de un árbol se considera el polo norte.
En las modalidades de diseño no radial, la dirección del
flujo de los enlaces siempre corresponde al sur. Si el nodo raíz
se coloca en la parte superior del dibujo, el norte está en la parte
superior, el sur en la parte inferior, el este a la derecha y el
oeste a la izquierda. Si el nodo raíz se coloca en el borde izquierdo
del dibujo, el norte está a la izquierda, el sur a la derecha, el
este en la parte superior y el oeste en la parte inferior.
En las modalidades de diseño radial, el nodo raíz se
coloca en el centro del dibujo. El significado del norte y el sur
depende de la posición relativa a la raíz: el lado norte del nodo es
el lado más cercano a la raíz y el lado sur es el lado más alejado de
la raíz. La dirección este se encuentra en el sentido contrario a las
agujas del reloj con respecto a la raíz y la dirección oeste en el
sentido de las agujas del reloj con respecto a la raíz. Es parecido a
un mapa cartográfico del mundo que muestra el área del polo norte
como si estuviéramos mirando desde arriba la parte superior del
globo.
Los puntos cardinales se utilizan para ofrecer
convenciones de denominación uniformes para determinadas opciones de
diseño. Aparecen en las opciones de alineación, la opción de
alineación de nivel y la característica vecinos este-oeste, que se
describen más adelante. En
Direcciones del flujo
y
Modalidad de diseño radial ,
los iconos con forma de brújula muestran los puntos cardinales en
estos dibujos.
Modalidades de diseño (DA)
El algoritmo de diseño de árbol tiene varias modalidades
de diseño. En el ejemplo siguiente se muestra cómo especificar la
modalidad de diseño.
Utilice el método setLayoutMode:
treeLayout.setLayoutMode(ibm_ilog.graphlayout.tree.TreeLayout.RADIAL);
Las modalidades de diseño disponibles son:
ibm_ilog.graphlayout.tree.TreeLayout.FREE
(valor predeterminado)ibm_ilog.graphlayout.tree.TreeLayout.LEVEL
ibm_ilog.graphlayout.tree.TreeLayout.RADIAL
ibm_ilog.graphlayout.tree.TreeLayout.ALTERNATING_RADIAL
ibm_ilog.graphlayout.tree.TreeLayout.BALLOON
ibm_ilog.graphlayout.tree.TreeLayout.TIP_OVER
ibm_ilog.graphlayout.tree.TreeLayout.TIP_ROOTS_OVER
ibm_ilog.graphlayout.tree.TreeLayout.TIP_LEAVES_OVER
ibm_ilog.graphlayout.tree.TreeLayout.TIP_ROOTS_AND_LEAVES_OVER