Contraintes de couloir (HL)

Les couloirs sont des zones rectangulaires orthogonales aux niveaux.
  • Si la direction de flux de liens est vers le bas ou vers le haut, les niveaux sont des lignes horizontales et les couloirs sont des colonnes verticales.
  • Si la direction de flux est vers la gauche ou vers la droite, les niveaux sont des colonnes verticales et les couloirs sont des lignes horizontales.
Vous pouvez utiliser des couloirs si les noeuds sont partitionnés en groupes, afin d'indiquer les noeuds qui appartiennent à un certain groupe. Les noeuds d'un même couloir sont placés de sorte qu'il est possible de tracer rectangle qui les entoure. Les couloirs vous permettent d'organiser le graphe à la manière d'un tableau. Par exemple, vous pouvez avoir un diagramme de flux de travaux dans lequel les noeuds représentent des actions ; les couloirs peuvent ensuite représenter les services qui exécutent ces actions. Chaque noeud peut appartenir à un seul couloir.
Note
Lorsque l'agencement hiérarchique est utilisé pour agencer des noeuds et des liens dans un composant Diagram qui qui contient des objets de couloir (instances ibm_ilog.graphlayout.Swimlane), des instances HierarchicalSwimLaneConstraint sont automatiquement créées pour placer les objets enfants de couloir dans la même zone de couloir, et pour dimensionner correctement les couloirs.
Pour affecter un groupe de noeuds à un couloir :
Appelez :
layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalSwimLaneConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalGroup(nodeArray)));
Tous les noeuds du vecteur de noeud sont placés dans le même couloir de forme rectangulaire. Si un graphe comporte beaucoup de rectangles de couloir, le classement relatif de ces couloirs est déterminé automatiquement. La taille du rectangle dépend des noeuds qui appartiennent au couloir. Toutefois, vous pouvez spécifier le classement relatif, la taille relative et les marges du couloir, mais également utiliser le constructeur suivant :
new ibm_ilog.graphlayout.hierarchical. HierarchicalSwimLaneConstraint(group, relSize, posIndex , westMargin, eastMargin);)
Exemple
représentant trois couloirs verticaux
Couloirs
La taille relative indique la taille de ce couloir par comparaison aux autres couloirs. Supposons que la direction de flux soit vers le bas. Dans ce cas, la taille relative indique la largeur du couloir. Tous les couloirs de même taille relative ont la même largeur. Un couloir dont la taille relative est égale à deux fois la valeur d'un autre couloir aura deux fois la largeur de l'autre couloir. La valeur effective de ce paramètre n'a pas d'importance, seule la valeur de largeur est comparée aux autres couloirs. Si vous ne voulez pas restreindre la taille du couloir, définissez la valeur sur 0. Dans ce cas, la largeur du couloir est indépendante des autres couloirs.
La marge minimum est celle du couleur en coordonnées absolues. Si la direction de flux est vers le bas, la marge minimum à l'ouest est la distance horizontale minimum entre le noeud noeud le plus à gauche du couloir et la bordure de couloir gauche, et la marge minimum à l'est est la distance horizontale minimum entre le noeud le plus à droite du couloir et la bordure de couloir droite.
L'index de position indique le classement des couloirs. Tout comme les noeuds ont des index de position, les couloirs sont placés de manière séquentielle à des positions relatives numérotées de 0 à n. Dans un agencement haut-bas, le couloir avec la position 0 est le plus à gauche, et les couloirs avec les index de position les plus élevés sont placés loin sur la droite. Si les couloirs ont l'index de position -1, l'algorithme d'agencement détermine la position appropriée automatiquement.
Une contrainte de couloir est toujours évaluée, même si le mode incrémentiel est activé. La contrainte a une priorité plus élevée que la contrainte de position relative et la contrainte côte à côte. Vous pouvez indiquer des contraintes côte à côte pour un groupe de noeuds qui appartient au même couloir, mais les contraintes côte à côte de noeuds de différents couloirs sont ignorées. Vous pouvez indiquer des contraintes de position relative entre les noeuds d'un même couloir. Vous pouvez également indiquer des contraintes de position relative entre un groupe entier de couloirs et un autre groupe de couloirs, ce qui permet de classer les couloirs de manière efficace. Cependant, les contraintes de position relative sont ignorées si cela nécessite une scission des couloirs. La contrainte de couloir domine les index de position spécifiés et les contraintes d'extrémité, ce qui signifie que si une contrainte de couloir est utilisée, vous ne pouvez indiquer des index de position ou des contraintes d'extrémité est/ouest pour aucun noeud.
Astuce
La résolution de conflit automatique peut gérer les contraintes de conflit. Toutefois, pour accélérer l'agencement, il est recommandé de spécifier des contraintes de telle manière qu'il n'y ait pas de conflits.