Mode d'agencement (LL)
La figure Modes avec liens courts et avec liens longs pour des liens orthogonaux illustre un exemple de petit graphe dans les modes avec liens courts et avec liens longs. Le mode avec liens courts regroupe correctement les liens. En raison du regroupement en faisceaux, certains liens rouges semblent déconnectés des noeuds verts. L'algorithme ne peut pas trouver une route pour les liens rouges et longs sans chevaucher certains noeuds ou sans chevaucher le lien vert. Le mode avec liens longs fonctionne sur une grille. Il traite uniquement les liens longs et évite le chevauchement de noeuds ou de segments de liens.
Il peut établir des connexions avec les noeuds verts en choisissant des points de connexion sur différents côtés des noeuds de fin. Il en résulte toutefois une structure moins régulière qui ne regroupe pas les liens en faisceaux, et un nombre élevé d'intersections de liens.

Modes avec liens courts et avec liens longs pour des liens orthogonaux
Choix de l'agencement approprié (LL)
Le mode avec liens courts doit être utilisé dans les situations suivantes :
- La plupart des liens sont courts et le chevauchement éventuel de liens longs sur des obstacles n'est pas un problème majeur.
- Les routes de liens doivent être positionnées librement et ne peuvent pas être limitées à une grille.
- Il est important de limiter le nombre de coudes.
Le mode avec liens longs doit être utilisé dans les situations suivantes :
- Les liens longs sont nombreux et le chevauchement éventuel de ces liens sur des obstacles est un problème majeur.
- Il existe un routage préféré car les noeuds sont déjà positionnés sur la grille.
- Il est important de définir une distance minimale garantie entre les segments de liens.
- Un nombre croissant de coudes est acceptable si cela permet d'éviter des chevauchements.
Routage dans un labyrinthe avec un agencement avec liens longs montre comment utiliser le mode avec liens longs pour trouver une route orthogonale sans qu'il y ait chevauchement dans un labyrinthe d'obstacles de noeuds.

Routage dans un labyrinthe avec un agencement avec liens longs
Style de lien (LL)
Les algorithmes d'agencement fournissent deux styles de lien : vous pouvez définir le style de lien de manière globale, auquel cas, tous les liens auront la même forme, ou localement sur chaque lien, auquel cas, le tracé comportera différentes formes de liens.
Style de lien global
Exemple de définition de style de lien global (algorithmes d'agencement de liens)
Pour définir le style de lien global :
Utilisez la méthode setGlobalLinkStyle :
layout.setGlobalLinkStyle(ibm_ilog.graphlayout.shortlink.ShortLinkLayout.ORTHOGONAL_STYLE);
Vous pouvez utiliser ibm_ilog.graphlayout.shortlink.ShortLinkLayout.ORTHOGONAL_STYLE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.ORTHOGONAL_STYLE, selon l'agencement avec lequel vous travaillez. Les valeurs des deux constantes sont identiques.
Les valeurs valides sont les suivantes :
- ibm_ilog.graphlayout.shortlink. ShortLinkLayout.ORTHOGONAL_STYLE ou ibm_ilog.graphlayout.longlink. LongLinkLayout.ORTHOGONAL_STYLE (valeur par défaut)Les liens sont remodelés sous une forme orthogonale (segments horizontaux et verticaux en alternance). Voir les exemples illustrés dans Agencement avec liens courts pour des liens orthogonaux et Agencement avec liens longs pour des liens orthogonaux.
- ibm_ilog.graphlayout.shortlink. ShortLinkLayout.DIRECT_STYLE ou ibm_ilog.graphlayout.longlink. LongLinkLayout.DIRECT_STYLELes liens sont remodelés en une ligne polygonale composée de trois segments : un segment straight-line qui débute et se termine par un petit segment horizontal ou vertical. Voir l'exemple illustré dans Même graphe comportant des liens directs et agencé en mode avec liens courts.
- ibm_ilog.graphlayout.shortlink. ShortLinkLayout.MIXED_STYLE ou ibm_ilog.graphlayout.longlink. LongLinkLayout.MIXED_STYLEChaque lien peut avoir un style de lien différent. Le style de chaque lien individuel peut être défini de sorte que des formes de liens différentes apparaissent sur le même graphe.
Style de lien individuel
Tous les liens ont le même style de forme sauf si le style de lien global a pour valeur MIXED_STYLE.
Chaque lien peut avoir un style de lien individuel uniquement lorsque le style de lien global a pour valeur MIXED_STYLE.

Combinaison de différents styles de lien dans le même tracé (agencement avec liens courts)

Combinaison de différents styles de lien dans le même tracé (agencement avec liens longs)
Exemple de spécification de style de lien individuel (algorithmes d'agencement de liens)
Pour définir et extraire le style d'un lien individuel :
Utilisez les méthodes suivantes :
layout.setLinkStyle(link, ibm_ilog.graphlayout.shortlink.ShortLinkLayout.ORTHOGONAL_STYLE);
var style = layout.getLinkStyle(node);
Les valeurs valides sont les suivantes :
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.ORTHOGONAL_STYLE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.ORTHOGONAL_STYLE (valeur par défaut)
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.DIRECT_STYLE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.DIRECT_STYLE
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.NO_RESHAPE_STYLE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.NO_RESHAPE_STYLE (le lien n'est jamais remodelé)
Mode de points finals (LL)
L'algorithme d'agencement fournit deux modes de point final. Vous pouvez définir le mode de point final de manière globale, auquel cas, tous les points finals ont le même mode, ou localement sur chaque lien, auquel cas, le tracé comporte différents modes de point final.
Mode de point final global
Exemple de spécification de mode de point final global (algorithme d'agencement de liens)
Pour définir le mode de point final global :
Utilisez les méthodes setGlobalOriginPointMode et setGlobalDestinationPointMode.
Les valeurs valides pour déterminer le mode sont les suivantes :
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.FREE_MODE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.FREE_MODE (valeur par défaut)L'agencement choisit librement la position appropriée du point de connexion sur le noeud d'origine ou de destination.
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.FIXED_MODE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.FIXED_MODEL'agencement doit conserver la position actuelle du point de connexion sur le noeud d'origine ou de destination.
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.MIXED_MODE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.MIXED_MODEChaque lien peut avoir un mode de point final différent.
Mode de point final individuel
Tous les liens ont le même mode de point final sauf si le mode de point final global a pour valeur MIXED_MODE.
Chaque lien peut avoir un mode de point final individuel uniquement lorsque le mode de point final global a pour valeur MIXED_MODE.
Exemple de spécification de mode de point final individuel (algorithme d'agencement de liens)
Pour définir le mode d'un lien individuel :
Utilisez les méthodes suivantes :
layout.setOriginPointMode(link, mode)
var mode = getOriginPointMode(link)
layout.setDestinationPointMode(link, mode)
var mode = getDestinationPointMode(link)
Les valeurs valides pour mode sont les suivantes :
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.FREE_MODE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.FREE_MODE (valeur par défaut)
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.FIXED_MODE ou ibm_ilog.graphlayout.longlink.LongLinkLayout.FIXED_MODE
Mode incrémentiel (LL)
Normalement, l'algorithme d'agencement de liens route tous les liens sur des bases entièrement nouvelles. Si le graphe change de façon incrémentielle parce que vous ajoutez ou supprimez des liens ou des noeuds, l'agencement qui en résulte peut être complètement différent de l'agencement précédent. Pour éviter cela et pour permettre à l'utilisateur de conserver un plan mental du graphe, l'algorithme est doté d'un mode incrémentiel.
Exemple d'activation du mode incrémentiel (algorithme d'agencement de liens)
Pour activer le mode incrémentiel :
Utilisez la méthode setIncrementalMode :
layout.setIncrementalMode(true);
En mode incrémentiel, l'agencement tente de réduire les modifications apportées au graphe. Un lien est rerouté uniquement s'il est nouveau, si une courbe de lien a été déplacée, si ses paramètres d'agencement ont été modifiés ou si un noeud a été déplacé et qu'il chevauche le lien.
En mode avec liens courts, si l'agencement suivant est incrémentiel, les liens conservent le côté de connexion et la forme générale calculés par un agencement précédent, sauf si l'un de leurs noeuds de fin a été déplacé ou redimensionné.
En mode avec liens longs, une nouvelle route est recherchée pour les liens qui ne sont plus sur la grille ou qui chevauchent des noeuds. La forme et le côté de connexion des liens reroutés peuvent être complètement différents.
Les liens qui figurent déjà sur la grille et qui ne chevauchent pas de noeuds ni d'autres liens, ne sont pas reroutés en mode incrémentiel. Il est également possible d'indiquer le lien qui doit être rerouté par l'agencement incrémentiel suivant même si l'agencement n'a pas été modifié.
Exemple de spécification de lien à rerouter par l'agencement incrémentiel suivant (algorithme d'agencement de liens)
Pour sélectionner le lien individuel qui doit être utilisé pour le reroutage incrémentiel :
Utilisez la méthode suivante :
layout.markForIncremental(link)
Routage de lien intergraphe (LL)

Graphe imbriqué avec des liens normaux (bleu) et des liens intergraphes (rouge)
Par défaut, l'agencement de liens route les liens normaux et les liens intergraphes.
Exemple de routage de liens normaux uniquement (algorithme d'agencement de liens)
Pour router uniquement des liens normaux, désactivez le routage de liens intergraphes :
Utilisez la méthode setInterGraphLinksMode :
layout.setInterGraphLinksMode(false);
Exemple de routage de liens normaux et/ou de liens intergraphes (algorithme d'agencement de liens)
Si le mode de liens intergraphes est activé, vous pouvez choisir de router uniquement les liens intergraphes ou à la fois les liens normaux et les liens intergraphes.
Définissez la méthode setCombinedInterGraphLinksMode de sorte que l'agencement suivant route les liens intergraphes et ne remodèle pas les liens normaux.
layout.setCombinedInterGraphLinksMode(false);
Définissez la méthode setCombinedInterGraphLinksMode de sorte que l'agencement suivant route à la fois les liens normaux et les liens intergraphes :
layout.setCombinedInterGraphLinksMode(true);
Lorsque le mode de liens intergraphes est activé, l'agencement ne peut pas router les liens de façon incrémentielle. Voir Mode incrémentiel (LL).
L'agencement route uniquement les liens qui appartiennent au graphe attaché. Dans un graphe imbriqué, chaque sous-graphe est attaché à une instance d'agencement distincte. Par conséquent, lorsqu'un agencement normal (non récursif) est démarré pour le graphe de niveau supérieur (voir Graphe imbriqué avec des liens normaux (bleu) et des liens intergraphes (rouge)), les liens illustrés sur cette figure ne sont pas tous routés, mais uniquement ceux qui appartiennent au graphe de niveau supérieur.
Dans la figure ci-dessous, l'ombrage jaune représente le sous-graphe auquel l'agencement de liens non récursif est actuellement appliqué.
Le graphe de niveau supérieur est à gauche et le sous-graphe (ombrage jaune) est à droite. Si le mode de liens intergraphes est activé, les liens intergraphes (rouges) et les liens normaux (bleus) sont routés. Si le mode de liens intergraphes est désactivé, seuls les liens normaux (bleus) sont routés. Les liens gris ne sont pas routés car ils n'appartiennent pas au graphe auquel l'agencement de liens est appliqué.

Liens routés dans un graphe imbriqué : graphe de niveau supérieur, puis sous-graphe
Pour router tous les liens d'un graphe imbriqué :
- Utilisez le mécanisme d'héritage par défaut qui applique également aux sous-graphes l'agencement de liens spécifié sur le graphe de niveau supérieur.ou
- Indiquez un agencement de liens explicitement sur chaque sous-graphe.