交差リンク形状ポリシーは、その他のリンクと交差するリンクの形状を計算します。交差モードは、トンネルまたはブリッジとすることができます。
![TunnelCrossingLinks.gif](../../JViews_Framework/usradvfwork/_media/TunnelCrossingLinks_default.gif)
![BridgeCrossingLinks.gif](../../JViews_Framework/usradvfwork/_media/BridgeCrossingLinks_default.gif)
トンネル交差およびブリッジ交差
リンク形状ポリシーの設定
クラス IlvCrossingAwareLinkImage のリンクに交差リンク形状ポリシーを設定できます。以下のコードを使用します。
IlvCrossingAwareLinkImage link = new IlvCrossingAwareLinkImage(node1, node2, true, null); link.setLinkShapePolicy(new IlvCrossingLinkShapePolicy()); grapher.addLink(link, redraw); ...
このポリシーは、いくつかのリンクの間で共有できます。同じポリシーを共有するすべてのリンクにポリシーのパラメーターが有効です。
交差グラフィック
交差リンク形状ポリシーは交差の位置を計算しますが、実際に交差を描画するのは交差グラフィックです。リンクに関連した交差グラフィックがない場合、交差は表示されず、代わりにギャップが現れます。交差グラフィックは、 IlvCrossingGraphic インターフェースを実装する IlvGraphic のサブクラスのインスタンスです。
パッケージ ilog.views.graphic.linkpolicy には、次の 2 つの定義済み交差グラフィックが含まれています。
- IlvTunnelCrossings (トンネル交差用)
- IlvBridgeCrossings (ブリッジ交差用)
形状ポリシー自体とは異なり、交差グラフィックは、複数のリンクで共有することはできません。リンクに関連付けられた後の交差グラフィックは、交差リンク形状ポリシーによって完全に維持されます。
したがって、交差グラフィックを移動したり、形状変更したりする必要はありません。これはすべてリンク形状ポリシーによって自動的に行われます。
トンネル交差グラフィックを設定するには、以下を呼び出します。
link.setCrossingGraphic(new IlvTunnelCrossings(link));
ブリッジ交差グラフィックを設定するには、以下を呼び出します。
link.setCrossingGraphic(new IlvBridgeCrossings(link));
例
次のコードは、2 つのリンクで交差リンク形状ポリシーおよび交差グラフィックを設定する方法を示しています。
IlvCrossingLinkShapePolicy policy = new IlvCrossingLinkShapePolicy(); IlvCrossingAwareLinkImage link1 = new IlvCrossingAwareLinkImage(node1, node2, true, null); link1.setCrossingGraphic(new IlvTunnelCrossings(link1)); link1.setLinkShapePolicy(policy); IlvCrossingAwareLinkImage link2 = new IlvCrossingAwareLinkImage(node3, node4, true, null); link2.setCrossingGraphic(new IlvTunnelCrossings(link2)); link2.setLinkShapePolicy(policy); ... // insert the links into the grapher only AFTER installing the policy grapher.addLink(link1, redraw); grapher.addLink(link2, redraw); ...