スイムレーンは、レベルに対して直交する矩形領域です。
- リンクの方向選択が下向きまたは上向きの場合は、レベルは水平の行であり、スイムレーンは垂直の列になります。
- 方向選択が左向きまたは右向きの場合は、レベルは垂直の列であり、スイムレーンは水平の行になります。
ノードがグループに分割されている場合は、スイムレーンを使用して特定のグループに属しているノードを示すことができます。
同じスイムレーン内のノードは、周りに矩形が描画できるように配置されます。
スイムレーンにより、グラフを表のように編成できます。
例えば、ノードがアクションを表すワークフロー・ダイアグラムを作成して、スイムレーンがそれらのアクションを実行する部門を表すようにすることができます。
各ノードが属することができるスイムレーンは
1 つのみです。
メモ
スイムレーン・オブジェクト
(ibm_graphlayout.Swimlane インスタンス)
を含む Diagram コンポーネント内にノードおよびリンクをレイアウトするために階層型レイアウトを使用すると、
スイムレーンの子オブジェクトを同じスイムレーン領域に配置し、スイムレーンのサイズを適切に調整できるように、 HierarchicalSwimLaneConstraint インスタンスが自動的に作成されます。
ノードのグループをスイムレーンに割り当てるには、以下のようにします。
以下を呼び出します。
layout.addConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalSwimLaneConstraint(new ibm_ilog.graphlayout.hierarchical.HierarchicalGroup(nodeArray)));
ノード・ベクトルのすべてのノードは、同じスイムレーンの矩形内に配置されます。
グラフに多数のスイムレーンの矩形がある場合は、それらのスイムレーンの相対順序は自動的に決定されます。
スイムレーンの矩形のサイズは、スイムレーンに属するノードによって異なります。
ただし、以下のコンストラクターを使用して、スイムレーンの相対順序、相対サイズ、およびマージンを指定することもできます。
new ibm_ilog.graphlayout.hierarchical. HierarchicalSwimLaneConstraint(group, relSize, posIndex , westMargin, eastMargin);)

スイムレーン
相対サイズは、そのスイムレーンが他のスイムレーンと比較してどれくらい大きいかを示します。
方向選択が下向きであるとします。この場合、相対サイズはスイムレーンの幅を示します。
相対サイズが同じであるすべてのスイムレーンの幅は同じになります。相対サイズが別のスイムレーンの
2 倍の値であるスイムレーンの幅は、その別のスイムレーンの幅の
2 倍になります。 このパラメーターの実際の数値は重要ではなく、他のスイムレーンと比較してどれくらい値が大きいかということのみが重要になります。
スイムレーンのサイズを制限しない場合は、値を
0 に設定します。この場合、スイムレーンの幅は他のスイムレーンから独立したものになります。
最小マージンは、絶対座標におけるスイムレーンのマージンです。
方向選択が下向きの場合は、西の最小マージンはスイムレーンの左端ノードと左スイムレーン・ボーダー間の最小水平距離であり、
東の最小マージンはスイムレーンの右端ノードと右スイムレーン・ボーダー間の最小水平距離です。
位置インデックスは、スイムレーンの順序を示します。
ノードに位置インデックスがあるのと同様に、スイムレーンは
0 から n の番号の相対位置に順次配置されます。
トップダウン・レイアウトでは、位置
0 のスイムレーンは左端スイムレーンであり、位置インデックスが大きいスイムレーンほど右側に配置されます。
スイムレーンの位置インデックスが
-1 の場合、レイアウト・アルゴリズムは適切な位置を自動的に判別します。
インクリメンタル・モードが使用可能になっている場合でも、スイムレーン制約は常に評価されます。
この制約の優先度は相対位置制約および横並び制約よりも高くなっています。
同じスイムレーンに属するノードのグループに対して横並び制約を指定できますが、異なるスイムレーンに属するノードの横並び制約は無視されます。
同じスイムレーンのノード間の相対位置制約を指定できます。
また、あるスイムレーン・グループ全体と別のスイムレーン・グループ間の相対位置制約を指定して、スイムレーンを効果的に順序付けることができます。
ただし、スイムレーンを分離する必要が生じる場合は、相対位置制約は無視されます。
スイムレーン制約は、指定された位置インデックスおよび末端制約よりも優先されます。
すなわち、スイムレーン制約を使用した場合、どのノードに対しても位置インデックスおよび東/西の末端制約を指定することはできません。
ヒント
自動競合解決により、競合する制約を処理できます。
ただし、レイアウトの速度を向上させるために、競合が生じないように制約を指定することをお勧めします。