Paramètres spécifiques (pour tous les modes d'agencement arborescent)

Les paramètres suivants sont spécifiques à la classe ibm_ilog.graphlayout.tree.TreeLayout. Ils s'appliquent à tous les modes d'agencement.

Noeud racine (TL)

L'agencement final est principalement influencé par le choix du noeud racine.
Le noeud racine est positionné de façon bien visible. Par exemple, dans un tracé descendant en mode d'agencement libre, il est positionné en haut de l'arborescence. En mode d'agencement radial, il est positionné au centre de l'arborescence.
L'arborescence fractionnée est calculée en partant du noeud racine. Si le graphe est déconnecté, l'algorithme d'agencement a besoin d'un noeud racine pour chaque composant connecté.
L'algorithme d'agencement sélectionne automatiquement un noeud racine lorsque cela est nécessaire. Il utilise une méthode heuristique qui calcule les préférences pour tous les noeuds afin de définir un noeud racine. Il choisit le noeud ayant le niveau de préférence le plus élevé. La méthode heuristique accorde le niveau de préférence le plus élevé aux noeuds sans lien entrant et le niveau de préférence le plus bas aux noeuds de feuille sans lien sortant. Par conséquent, dans une arborescence orientée, la racine canonique est toujours choisie automatiquement.
Il est possible d'influencer le choix du noeud racine.
Pour définir explicitement un noeud comme racine :
Utilisez la méthode setRoot :
treeLayout.setRoot(node);
Le noeud prend ainsi le niveau de préférence le plus élevé pour devenir la racine au cours de l'agencement. Si un seul noeud est spécifié de cette façon, l'algorithme sélectionne ce noeud. Si plusieurs noeuds du même composant connecté sont spécifiés de cette façon, l'algorithme d'agencement choisit l'un d'entre eux comme racine.

A l'attention des experts : autres options pour les noeuds racine (TL)

L'algorithme d'agencement gère une liste des noeuds racine qui ont été spécifiés par la méthode setRoot.
Pour obtenir les noeuds de cette liste, utilisez la méthode getSpecRoots :
var roots = treeLayout.getSpecRoots();
while(roots.hasNext()){
	var root = roots.next();
	...
}
Après l'agencement, vous pouvez également extraire la liste des noeuds racine qui ont été utilisés par l'algorithme. Cette liste n'est pas nécessairement la même que la liste des noeuds spécifiés. Par exemple, elle contient les noeuds racine choisis si aucun noeud n'a été spécifié ou si trop de noeuds ont été spécifiés.
Pour obtenir les noeuds racine qui ont été utilisés par l'algorithme, utilisez la méthode getCalcRoots :
var roots = treeLayout.getCalcRoots();
while(roots.hasNext()){
	var root = roots.next();
	...
}
Cet exemple montre comment effectuer une itération sur les noeuds racine calculés et imprimer les préférences de noeud racine :
var roots = treeLayout.getCalcRoots();
while(roots.hasNext()){
 var root = roots.next();
 console.log("Preference: " + treeLayout.getRootPreference(root));
}
Pour manipuler directement la valeur de préférence de noeud racine d'un noeud individuel :
Utilisez la méthode suivante :
treeLayout.setRootPreference(node, 100);
Dans ce cas, l'agencement utilise la valeur spécifiée au lieu de la préférence de noeud calculée au moyen d'une méthode heuristique. La valeur de préférence normale doit être comprise entre 0 et 10000. Le fait de spécifier explicitement un noeud racine revient à définir la valeur 10000 pour la préférence. Si vous souhaitez interdire à un noeud de devenir la racine, spécifiez la valeur de préférence zéro (0).
Une valeur de préférence négative indique que l'algorithme d'agencement doit recalculer la préférence de noeud racine à l'aide de la méthode heuristique. Si un noeud racine a été spécifié à l'aide de la méthode setRoot, mais que ce noeud ne doit plus être la racine dans les agencements suivants, utilisez l'appel ci-dessous pour effacer la valeur du noeud racine :
treeLayout.setRootPreference(node, -1);
Cet appel supprime également le noeud de la liste des racines spécifiées.

Paramètres de position (TL)

Pour définir la valeur (10, 10) pour la position de l'angle supérieur gauche de l'agencement :
Utilisez la méthode suivante :
treeLayout.setPosition({x:10, y:10}, false);
Si le graphe se compose d'une seule arborescence, il est souvent plus pratique de plutôt définir la position du noeud racine. Pour ce faire, procédez comme suit :
Utilisez la même méthode et transmettez la valeur true au lieu de la valeur false :
treeLayout.setPosition({x:10, y:10}, true); 
Si aucune position n'est spécifiée, l'agencement maintient le noeud racine à sa position précédente.

Utilisation de directions de compas pour les paramètres d'agencement positionnels (TL)

Les directions de compas nord, sud, est et ouest sont utilisées pour simplifier les explications des paramètres d'agencement. Le centre du noeud racine d'une arborescence est considérée comme le pôle Nord.
Dans les modes d'agencement non radial, la direction du flux des liens est toujours vers le sud. Si le noeud racine est positionné en haut du tracé, le nord est en haut, le sud est en bas, l'est est à droite et l'ouest est à gauche. Si le noeud racine est positionné sur le bord gauche du tracé, le nord est à gauche, le sud est à droite, l'est est en haut et l'ouest est en bas.
Dans les modes d'agencement radial, le noeud racine est positionné au centre du tracé. La signification du nord et du sud varie en fonction de la position relative de la racine : le côté nord du noeud est celui qui est le plus proche de la racine et le côté sud est celui qui est le plus éloigné de la racine. La direction vers l'est se fait dans le sens contraire des aiguilles d'une montre autour de la racine et la direction vers l'ouest se fait dans le sens des aiguilles d'une montre autour de la racine. Cela ressemble à un relevé cartographique d'un globe réel qui représente la zone du pôle Nord comme si vous regardiez vers le bas à partir du haut du globe.
Les directions de compas permettent de fournir des conventions de dénomination uniformes pour certaines options d'agencement. Elles concernent les options d'alignement, l'option d'alignement de niveau et la fonction de voisinage est-ouest, expliquées ultérieurement. Dans Directions de flux et Mode d'agencement radial, les icônes de compas illustrent les directions de compas dans ces tracés.

Modes d'agencement (TL)

L'algorithme d'agencement arborescent comporte plusieurs modes d'agencement. L'exemple suivant montre comment spécifier le mode d'agencement.
Utilisez la méthode setLayoutMode :
treeLayout.setLayoutMode(ibm_ilog.graphlayout.tree.TreeLayout.RADIAL);  
Les modes d'agencement disponibles sont :
  • ibm_ilog.graphlayout.tree.TreeLayout.FREE (valeur par défaut)
  • 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