同じノードで開始および終了するセルフリンク

セルフリンクとは、同じノードで開始および終了するリンクです。 セルフリンクは、複数リンクである場合もあります。このようなリンクは多重セルフリンク・バンドルと呼ばれます。 リンクが直線で経路指定されている場合、セルフリンクは、ノードの中央にある同じポイントで開始および終了するため、識別できません。このような結果にならないように、『基本リンク・スタイル・レイアウトのサブクラスであるレイアウト・アルゴリズム』にリストされているレイアウトには、 リンク・スタイルが STRAIGHT_LINE_STYLE に 設定されている場合にのみ適用されるセルフリンク・モードがあります。 リンク・スタイルの名前に反して、モードとスタイルを組み合わせることにより、 セルフリンクに曲折点が追加され、セルフリンクが表示されるようになります。 リンク・スタイルが NO_RESHAPE_STYLE の場合は、 セルフリンク・モードは無効になります。
セルフリンクの経路指定方法の指定の例
NO_BENDS モードを除く、これらのすべてのモードは、 3 つの曲折点を作成して直角に配置するため、セグメントは 4 分の 3 程度の長方形または正方形のようになり、 残りの 4 分の 1 の部分がセルフリンクが接続されるノードになります。 ノードの大きさによって、RECTANGULAR モードは、4 つのコーナーがある形状 (正方形ではない) を作成し、 SQUARE モードは正方形を作成します。SQUARE モードは、スプライン・セルフリンクの場合に特に便利です。 この場合、スプラインは約 4 分の 3 の円のように見えます。
モード 結果のグラフィック
CONNECTED_RECTANGULAR モード

CONNECTED_RECTANGULAR モードによる 3 つの直交曲折点をもつセルフリンク
CONNECTED_SQUARE モード

CONNECTED_SQUARE モードによる 3 つの直交曲折点をもつセルフリンク
CONNECTED_SQUARE モード (スプライン・リンクを使用)

CONNECTED_SQUARE モードによるスプライン・セルフリンク
CONNECTED モードは、接続ポイントをノードのボーダーに配置します。 FREE モードは、対応する CONNECTED モードと同じ位置に曲折点を配置しますが、 リンク接続ポイントは強制されません。 すなわち、ノードとリンクは、接続ポイントを自由に設定できます。 FREE モードでのリンク・セグメントは直交していない場合があります。 これは、接続ポイントが強制されないためです。
NARROW モードとそれ以外のモードは、単一のセルフリンクの場合は同じように作用します。 同じノードに複数のセルフリンクがある場合、セルフリンクは重ならないようにオフセットの分だけ シフトされます。この場合、NARROW モードとそれ以外のモードでは異なります。 複数のセルフリンクのシフト・オフセットが終了ノードのサイズにより制限されるため、 多重セルフリンク・バンドルのリンク間隔がより狭くなることがあります。
モードおよびオフセットの使用例 結果のグラフィック
CONNECTED_SQUARE モード

CONNECTED_SQUARE モードでの複数のセルフリンクのシフト・オフセット
NARROW_CONNECTED_SQUARE モード

NARROW_CONNECTED_SQUARE モードでの終了ノードのサイズにより制限された、複数のセルフリンクのシフト・オフセット
セルフリンクは、ノードの 4 つのすべてのコーナーで使用できます。 アルゴリズムは、他のすべてのリンクの方向に基づいて、最適なコーナーを自動的に判別します。 ユーザーが、使用するコーナーを限定することもできます。
以下のメソッドを使用します。
layout.setSelfLinkAllowedCorners(corners);
許可されるコーナーは、以下の定数から選択された組み合わせのビット論理和になります。例えば、 Force-directed レイアウトの場合は以下から選択します。
デフォルトで、セルフリンクは右回りの方向になります。他の方向を指定することもできます。
以下のメソッドを使用します。
setSelfLinkOrientation(orientation);
例えば、Force-directedレイアウトの場合、 orientation の有効値は次のとおりです。