Parámetros específicos (para las tres modalidades de diseño)

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