スイムレーンの作成

スイムレーンは、グラフを垂直または水平ストライプに分割する場合に使用される特殊なタイプのサブグラフです。スイムレーンは、プロセス内の組織や関与者を表すため、ビジネス・プロセスまたはワークフロー・ダイアグラムでよく使用されます。
スイムレーンを作成するには、次のようにします。
  • graph.createSwimLane() 関数を使用します。
    以下の例では、スイムレーンの作成方法を示しています。
    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);
結果のグラフは、次のように表示されます。
2 つの水平スイムレーン、「スイムレーン 1」および「スイムレーン 2] を示すグラフ。「スイムレーン 1」には、2 つの長方形ノード、「ノード 1」および「ノード 2」が含まれ、リンクによって接続されています。
「スイムレーン 2」には、2 つの長方形ノード、「ノード 3」および「ノード 4」が含まれ、リンクによって接続されています。また、「スイムレーン 1」の「ノード 2」を 「スイムレーン 2」の「ノード 3」に接続しているリンクもあります。
スイムレーンは、サブグラフに似ていますが、次のような違いがあります。
  • スイムレーンは、水平または垂直にできます。
    • 水平スイムレーンのタイトルは、左側 (前の例) または右側に垂直に表示されます。右側にタイトルを表示するには、次のメソッドを使用します。
      swimlane.setRightToLeft(true); 
    • 垂直スイムレーンのタイトルは、常に上部に水平に表示されます。垂直スイムレーンを作成するには、次のメソッドを使用します。
      swimlane.setVertical(true); 
  • スイムレーンでは、そのサイズが自動的に子に適用されません。スイムレーンのサイズは、次のメソッドを使用して明示的に設定する必要があります。
    swimlane.setExplicitSize({width:w, height:h});
  • スイムレーンはそのコンテンツに適用されないため、親のスイムレーンの境界外に、対話式にノードを移動することはできません。
  • スイムレーンに他のスイムレーンを含めることができます。 この場合、入れ子にしたスイムレーンは、親レーンに自動的にスタックされます。入れ子にしたレーンは、親レーンが水平の場合、垂直にスタックされ、親レーンが垂直の場合は水平にスタックされます。自動的なスタッキングを無効にするには、次のメソッドを使用します。
    swimlane.setStackSublanes(false);
  • スイムレーンが、階層的グラフ・レイアウト・アルゴリズムに接続されたグラフ内に含まれる場合、IBM® ILOG® Dojo Diagrammer では、スイムレーンを考慮するように自動的にレイアウトをセットアップします (階層型レイアウト (HL) を参照)。