Création de couloirs

Les couloirs constituent un type spécial de sous-graphe permettant de diviser un graphe en bandes verticales ou horizontales. Les couloirs sont souvent utilisés dans des diagrammes de processus métier ou de flux de travaux afin de représenter des organisations ou des participants dans un processus.
Pour créer des couloirs :
  • Utilisez la fonction graph.createSwimLane().
    L'exemple suivant montre comment créer des couloirs :
    var swimlane1 = graph.createSwimLane();
          swimlane1.setLabel("Swim lane 1");
          swimlane1.move(40, 40);
          swimlane1.setExplicitSize({width:600, height:100});
          
          var node1 = swimlane1.getGraph().createNode();
          node1.setLabel("Node 1");
          node1.move(30, 30);
          
          var node2 = swimlane1.getGraph().createNode();
          node2.setLabel("Node 2");
          node2.move(160, 30);
          
          var link1 = swimlane1.getGraph().createLink();
          link1.setStartNode(node1);
          link1.setEndNode(node2);
    
           var swimlane2 = graph.createSwimLane();
          swimlane2.setLabel("Swim lane 2");
          swimlane2.move(40, 180);
          swimlane2.setExplicitSize({width:600, height:100});
          
          var node3 = swimlane2.getGraph().createNode();
          node3.setLabel("Node 3");
          node3.move(330, 30);
          
          var node4 = swimlane2.getGraph().createNode();
          node4.setLabel("Node 4");
          node4.move(460, 30);
          
          var link2 = swimlane2.getGraph().createLink();
          link2.setStartNode(node3);
          link2.setEndNode(node4);
    
          var link3 = graph.createLink();
          link3.setStartNode(node2);
          link3.setEndNode(node3);
          link3.setShapeType(ibm_ilog.diagram.LinkShapeType.Orthogonal);
Le graphe résultant est le suivant :
Graphe avec deux couloirs horizontaux, Swimlane 1 et Swimlane 2. Swimlane 1 contient deux noeuds rectangulaires, Node 1 et Node 2, connectés par un lien. Swimlane 2 contient deux noeuds rectangulaires, Node 3 et Node
4, connectés par un lien. Un lien connecte également Node 2 dans Swimlane 1
à Node 3 dans Swimlane 2.
Les couloirs sont similaires à des sous-graphes, avec les différences suivantes :
  • Les couloirs peuvent être horizontaux ou verticaux :
    • le titre d'un couloir horizontal s'affiche verticalement sur la gauche (comme dans l'exemple précédent) ou sur la droite. Pour afficher le titre à droite, utilisez la méthode suivante :
      swimlane.setRightToLeft(true); 
    • le titre d'un couloir vertical est toujours affiché horizontalement, dans la partie supérieure. Pour créer un couloir vertical, utilisez la méthode suivante :
      swimlane.setVertical(true); 
  • Les couloirs n'adaptent pas toujours leur taille automatiquement à celle de leurs enfants. C'est pourquoi la taille d'un couloir doit être définie explicitement à l'aide de la méthode suivante :
    swimlane.setExplicitSize({width:w, height:h});
  • Comme les couloirs ne s'adaptent pas à leur contenu, vous ne pouvez pas déplacer interactivement des noeuds en dehors des limites de leur couloir parent.
  • Les couloirs peuvent contenir d'autres couloirs. Dans ce cas, les couloirs imbriqués sont automatiquement empilés dans le couloir parent. Les couloirs imbriqués sont empilés verticalement si le couloir parent est horizontal, et horizontalement si le couloir parent est vertical. Pour désactiver l'empilement automatique, utilisez la méthode suivante :
    swimlane.setStackSublanes(false);
  • Lorsque des couloirs sont contenus dans un graphe associé à un algorithme d'agencement de graphe hiérarchique, IBM® ILOG® Dojo Diagrammer configure automatiquement l'agencement pour prendre en compte les couloirs (voir Agencement hiérarchique (Hierarchical Layout - HL)).