Paramètres spécifiques de l'agencement GL

Paramètre Classer (GL)

Le paramètre Classer indique la façon dont les noeuds doivent être organisés.
Exemple d'indication des itérations de placement de noeud et du temps imparti (algorithme d'agencement de grille (GL))
Pour spécifier l'option de classement des noeuds :
Utilisez la méthode suivante :
gridLayout.setNodeComparator(ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_HEIGHT); 
Le paramètre Classer indique la façon dont les noeuds doivent être organisés.
Les valeurs valides pour comparator sont les suivantes :
  • ibm_ilog.graphlayout.grid.GridLayout.AUTOMATIC_ORDERING
    L'algorithme est libre de choisir le classement de manière à essayer de réduire la zone totale occupée par l'agencement.
  • ibm_ilog.graphlayout.grid.GridLayout.NO_ORDERING
    Aucun classement n'est effectué.
  • ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_HEIGHT
    Les noeuds sont classés par ordre décroissant de leur hauteur.
  • ibm_ilog.graphlayout.grid.GridLayout.ASCENDING_HEIGHT
    Les noeuds sont classés par ordre croissant de leur hauteur.
  • ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_WIDTH
    Les noeuds sont classés par ordre décroissant de leur largeur.
  • ibm_ilog.graphlayout.grid.GridLayout.ASCENDING_WIDTH
    Les noeuds sont classés par ordre croissant de leur largeur.
  • ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_AREA
    Les noeuds sont classés par ordre décroissant de leur zone.
  • ibm_ilog.graphlayout.grid.GridLayout.ASCENDING_AREA
    Les noeuds sont classés par ordre croissant de leur zone.
  • ibm_ilog.graphlayout.grid.GridLayout.ASCENDING_INDEX
    Les noeuds sont classés par ordre croissant de leur index (voirsetIndex).
  • ibm_ilog.graphlayout.grid.GridLayout.DESCENDING_INDEX
    Les noeuds sont classés par ordre décroissant de leur index (voir setIndex).
  • null
    Les noeuds sont classés de façon arbitraire.
  • Tout objet comportant une propriété compare dont la valeur doit être une fonction.
    Les noeuds sont classés en fonction de ce comparateur personnalisé.
  • La fonction compare doit avoir la signature suivante :
    compareFunction (A, B)
    La fonction de comparaison compare deux arguments. Par exemple : Etant donné deux éléments A et B, la fonction compareFunction retourne l'une des deux valeurs suivantes :
    • -1
      La fonction retourne A avant B dans la séquence triée.
    • 0
      A égale B.
    • 1
      La fonction retourne A après B dans la séquence triée.
La valeur par défaut est ibm_ilog.graphlayout.grid.GridLayout.AUTOMATIC_ORDERING.
En mode incrémentiel (voir setIncrementalMode) et avec des noeuds fixes (voir setFixed), le classement des noeuds n'est pas intégralement conservé.
Si le mode d'agencement est TILE_TO_GRID_FIXED_WIDTH or TILE_TO_GRID_FIXED_HEIGHT, les options de classement sont appliquées uniquement pour les noeuds dont la taille (marges comprises) est inférieure à la taille de cellule de grille (voir setHorizontalGridOffset et setVerticalGridOffset).

Noeuds d'agencement (GL)

L'algorithme de grille comporte quatre modes d'agencement.
Exemple de sélection d'un mode d'agencement (algorithme d'agencement de grille (GL))
Pour sélectionner un mode d'agencement :
Utilisez la méthode suivante :
gridLayout.setLayoutMode(ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_HEIGHT);  
Les valeurs valides pour mode sont les suivantes :
  • ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_WIDTH (valeur par défaut).
    Les noeuds sont placés dans les cellules d'une grille (matrice) qui comporte un nombre maximum fixe de colonnes. Ce nombre est égal à la largeur du paramètre de région d'agencement divisé par le décalage de grille horizontal.
  • ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_HEIGHT
    Les noeuds sont placés dans les cellules d'une grille (matrice) qui comporte un nombre maximum fixe de lignes. Ce nombre est égal à la hauteur du paramètre de région d'agencement divisé par le décalage de grille vertical.
  • ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_ROWS
    Les noeuds sont placés sur des lignes. La largeur maximum des lignes est égale à la largeur du paramètre de région d'agencement. La hauteur de la ligne est la hauteur maximum des noeuds contenus sur la ligne (plus les marges).
  • ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_COLUMNS
    Les noeuds sont placés dans des colonnes. La hauteur maximum des colonnes est égale à la hauteur du paramètre de région d'agencement. La largeur de la colonne est la largeur maximum des noeuds figurant dans la colonne (plus les marges).

Paramètres d'alignement (GL)

Paramètres d'alignement global

Les options d'alignement contrôlent la façon dont un noeud est placé au-dessus de sa cellule de grille ou au-dessus de sa ligne ou colonne (en fonction du mode d'agencement). L'alignement peut être défini de manière globale, auquel cas, tous les noeuds sont alignés de la même façon, ou localement sur chaque noeud, auquel cas, différents alignements se produisent sur le même graphe.
Exemple de définition d'alignement global (algorithme d'agencement de grille (GL))
Pour définir l'alignement global :
Utilisez les méthodes suivantes :
gridLayout.setGlobalHorizontalAlignment(ibm_ilog.graphlayout.grid.GridLayout.LEFT);
gridLayout.setGlobalVerticalAlignment(ibm_ilog.graphlayout.grid.GridLayout.TOP);
Les valeurs valides pour le paramètre d'alignement sont les suivantes :
  • ibm_ilog.graphlayout.grid.GridLayout.CENTER (valeur par défaut)
    Le noeud est centré horizontalement et verticalement sur sa cellule, ligne ou colonne de grille.
  • ibm_ilog.graphlayout.grid.GridLayout.TOP
    Le noeud est aligné verticalement sur la partie supérieure de sa cellule ou ligne. Non utilisé si le mode d'agencement est TILE_TO_COLUMNS.
  • ibm_ilog.graphlayout.grid.GridLayout.BOTTOM
    Le noeud est aligné verticalement sur la partie inférieure de sa cellule ou ligne. Non utilisé si le mode d'agencement est TILE_TO_COLUMNS.
  • ibm_ilog.graphlayout.grid.GridLayout.LEFT
    Le noeud est aligné horizontalement sur la partie gauche de sa cellule ou colonne. Non utilisé si le mode d'agencement est TILE_TO_ROWS.
  • ibm_ilog.graphlayout.grid.GridLayout.RIGHT
    Le noeud est aligné horizontalement sur la partie droite de sa cellule ou colonne. Non utilisé si le mode d'agencement est TILE_TO_ROWS.
  • ibm_ilog.graphlayout.grid.GridLayout.MIXED
    Chaque noeud peut avoir un alignement différent. L'alignement de chaque noeud individuel peut être défini et cela peut avoir pour résultat de générer des alignements différents sur le même graphe.

Alignement des noeuds individuels

Tous les noeuds ont le même alignement sauf si l'alignement global a pour valeur ibm_ilog.graphlayout.grid.GridLayout.MIXED. Chaque noeud peut avoir un style d'alignement individuel uniquement lorsque l'alignement global est défini sur mixte.
Exemple de définition d'alignement de noeuds individuels (algorithme d'agencement de grille (GL))
Pour définir et extraire l'alignement d'un noeud individuel :
Utilisez les méthodes suivantes :
setHorizontalAlignment(node, alignment);  
setVerticalAlignment(node, alignment);   
getHorizontalAlignment(node);   
getVerticalAlignment(node);   
Les valeurs valides pour le paramètre d'alignement sont les suivantes :
  • ibm_ilog.graphlayout.grid.GridLayout.CENTER (valeur par défaut)
  • ibm_ilog.graphlayout.grid.GridLayout.TOP
  • ibm_ilog.graphlayout.grid.GridLayout.BOTTOM
  • ibm_ilog.graphlayout.grid.GridLayout.LEFT
  • ibm_ilog.graphlayout.grid.GridLayout.RIGHT

Nombre maximal de noeuds par ligne ou colonne (GL)

Par défaut, en mode ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_ROWS ou ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_COLUMNS, l'agencement place autant de noeuds que possible sur chaque ligne ou colonne, selon la taille des noeuds et les paramètres dimensionnels (région et marges d'agencement). Si nécessaire, l'agencement peut aussi respecter un nombre maximum défini de noeuds par ligne ou colonne.
Exemple d'indication du nombre maximum de noeuds par ligne ou colonne (algorithme GL)
Pour définir le nombre maximum de noeuds par ligne ou colonne :
Utilisez la méthode suivante :
gridLayout.setMaxNumberOfNodesPerRowOrColumn(5);  
La valeur par défaut est int.MAX_VALUE, c'est-à-dire, le nombre de noeuds placés sur chaque ligne ou dans chaque colonne est lié uniquement par la taille des noeuds et les paramètres dimensionnels. La valeur spécifiée doit être au moins égale à 1 Le paramètre n'a aucun effet si le mode de groupement est ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_WIDTH ou ibm_ilog.graphlayout.grid.GridLayout.TILE_TO_GRID_FIXED_HEIGHT.

Mode incrémentiel (GL)

L'algorithme d'agencement de grille place normalement tous les noeuds sur des bases entièrement nouvelles. Si le graphe change de façon incrémentielle car vous ajoutez, supprimez ou redimensionnez 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. En mode incrémentiel, l'agencement tente de placer les noeuds au même endroit ou dans le même ordre que dans l'agencement précédent, chaque fois que possible.
Exemple d'activation du mode incrémentiel (algorithme GL)
Pour activer le mode incrémentiel :
Appelez la méthode setIncrementalMode comme suit :
gridLayout.setIncrementalMode(true); 
Note
Pour préserver la stabilité, le mode incrémentiel peut maintenir certaines régions disponibles. Par conséquent, par rapport au mode non incrémentiel, la zone totale de l'agencement peut être plus large et, le plus souvent, l'apparence de l'agencement peut ne pas être aussi conviviale.

Paramètres dimensionnels (GL)

Paramètres dimensionnels pour le mode grille de l'algorithme d'agencement de grille et Paramètres dimensionnels pour le mode ligne et colonne de l'algorithme d'agencement de grille illustrent les paramètres dimensionnels utilisés dans l'algorithme d'agencement de grille. Ces paramètres sont décrits dans les sections qui suivent.
Diagramme illustrant les paramètres d'écart de grille et de marge de l'agencement en grille en mode grille
Paramètres dimensionnels pour le mode grille de l'algorithme d'agencement de grille
Diagramme illustrant les paramètres de région d'agencement et de marge de l'agencement en grille en mode ligne et colonne
Paramètres dimensionnels pour le mode ligne et colonne de l'algorithme d'agencement de grille

Décalage de grille (GL)

Les paramètres de décalage de grille contrôlent l'espacement entre les lignes de grille. Ils sont pris en compte uniquement par le mode grille (modes d'agencement TILE_TO_GRID_FIXED_WIDTH et TILE_TO_GRID_FIXED_HEIGHT).
Exemple de définition de décalage de grille (algorithme d'agencement de grille (GL))
Pour définir le décalage de grille horizontal et vertical :
Utilisez les méthodes :
gridLayout.setHorizontalGridOffset(50);
gridLayout.setVerticalGridOffset(50);  
Le décalage de grille est un paramètre essentiel du mode grille. Si le décalage de grille est supérieur à la taille des noeuds (plus les marges), un espace vide est laissé autour des noeuds. Si le décalage de grille est inférieur à la taille des noeuds (plus les marges), le noeud doit être placé dans plusieurs cellules de grille. Le choix le plus adapté pour les décalages de grille dépendent de l'application. Il peut être calculé d'après la taille maximum des noeuds (plus les marges) ou la taille moyenne, et ainsi de suite. Si tous les noeuds sont de taille similaire, le choix est facile.

Marges (GL)

Les marges contrôlent l'espace autour de chaque noeud maintenu vide par l'algorithme d'agencement.
Exemple d'indication des marges (algorithme d'agencement de grille (GL)
Pour définir les marges :
Utilisez les méthodes :
gridLayout.setTopMargin(10);
gridLayout.setBottomMargin(10);
gridLayout.setLeftMargin(5);
gridLayout.setRightMargin(5);  
La signification des paramètres de marge n'est pas la même pour les modes grille que pour les modes ligne/colonne :
La valeur par défaut pour tous les paramètres de marge est 5.