リンクで以下の 4 つのモードのいずれかを設定して矢印を表すことができます。
ARROW_FILL
モード値 (デフォルト) は、塗りつぶされた三角形の矢印を描画します。ARROW_OPEN
モード値は、2 翼の矢印を描画します。ARROW_GRADIENT
モード値は、リンクに沿って明度を徐々に変更して、有向リンクを示します。 リンクは、ソース・オブジェクトの近くでは暗く、ターゲット・オブジェクトの近くでは明るくなります。ARROW_DECORATION
モード値は、矢印を表示する作業を、リンク装飾の 1 つに委ねます。
矢印の描画
最初の 2 つのモードでは、
arrowPosition
プロパティーによって、リンクに沿って矢印の位置を制御します。
値は 0 から 1 の浮動小数点値です。値 0 はリンクの先頭を意味し、1 は終端 (デフォルト) を意味します。
矢印の向きは、当然、それが付加されているリンク・セグメントに合わせられます。プロパティー
arrowRatio
は、矢印のサイズ (リンク幅に比例) を制御します。
浮動小数点値 0.5 は、矢印がリンクと同じサイズであることを意味します。デフォルト値の 1 は、矢印がリンク幅の 2 倍であることを意味します。
このプロパティーは、最初の 2 つの矢印モードでのみ意味があります。矢印のデフォルト色は黒色ですが、プロパティー
arrowColor
を使用して別の色を設定できます。![塗りつぶす色がピンクで、黒色の実線ボーダーで、結合が丸く、終端が切れている、3 つの垂直に位置合わせされたリンクを示す図。
上のリンクは矢印グラデーション・モードに設定されているため、色はリンク・ソースで暗く、リンクのターゲット終端 (ここではリンクの右端) で明るくなっています。
中央のリンクは均一なピンク色で、ターゲット終端が塗りつぶされた黒色の三角形の矢印になっています。
下のリンクには、紫色の開いた矢印 (>) があります。
矢印は、リンクのソース終端から 0.2 単位の距離にあります。
また、リンクのターゲット終端方向を指しています。](../../JViews_Diagrammer/usrextdiag/_media/generallink926_default.gif)
矢印および方向
基本リンクのプロパティーおよび方向を示す 3 つの方法
link { lineWidth : 10 ; endCap : CAP_BUTT ; lineJoin : JOIN_ROUND ; foreground : 255,130,171 ; borderWidth : 2 ; oriented : true ; } link.top { arrowMode : ARROW_GRADIENT ; } link.center { mode : MODE_UNICOLOR ; arrowPosition : 1f ; arrowMode : ARROW_FILL ; } link.bottom { arrowColor : #A3056E ; arrowPosition : .2 ; arrowMode : ARROW_OPEN ; }
矢印としての装飾の使用
ARROW_DECORATION
モード値は、矢印を表示する役目を装飾に委ねます。 IlvGeneralLink は、特定の種類の矢印 (例えば UML 描画で使用するもの) を表示する上で役立つ場合があります。
矢印は単純な形状 (円、三角形、または菱形など) であり、リンクの終端に配置されます。
リンクは形状に重ならず、形状の中央に到達することもなく、一切変更されません。
ターゲット・ノードに触れる最後のリンク・セグメントの方向に関係なく、形状は常にリンクに向かいます。
装飾は IlvGraphic オブジェクト (つまり、基本的に矩形オブジェクト) であるため、この特殊モードを使用することで、直交リンクの場合に、より優れた結果が得られます。
このモードを使用できるのは、以下の条件が満たされている場合のみです。
arrowMode
プロパティーがARROW_DECORATION
に設定されている。- リンク装飾の 1 つの位置が 1 に設定されている。
- この装飾でオプション
DECORATION_OVER
を設定する。 - この装飾でオプション
DECORATION_xxx_RETRACT_AT_END
の 1 つを設定する。ここで、xxx
は、FULL
、HALF
、NO
のいずれか。
以下の図に、正方形ノードに接続された、
ARROW_DECORATION
モードの 2 つのリンクの例を示します。
水平のリンクの終端は円になっており、線は円の中心まで続いています。
垂直のリンクの終端は菱形であり、線は菱形の先頭までになっています。![正方形ノードに接続するリンクの矢印の装飾を示す図。
水平のリンクと垂直のリンクは、異なるソース・ノードから同じターゲット・ノードに接続されています。
小さな円の装飾が、水平に位置合わせされたノードを接続するリンクの終端にあり、ターゲット・ノードに隣接しています。
リンク自体は円の装飾の中心まで延びています。中抜きの菱形の装飾が、垂直に位置合わせされたノードを接続するリンクの終端にあり、ターゲット・ノードにも接しています。
このリンクは、菱形矢印装飾の開始部分を越えて延びていません。](../../JViews_Diagrammer/usrextdiag/_media/decorationarrow27_default.gif)
2 つの装飾矢印
以下のコード例で、ノード、リンク、および矢印を生成するために使用するスタイル・ルールを示します。
ノードへのリンクでの矢印としての装飾
///////////// // A very simple node node { class : ilog.views.sdm.graphic.IlvGeneralNode fillColor1 : pink; foreground : gray; } //////////// // Link definition link { class : ilog.views.sdm.graphic.IlvGeneralLink; oriented : true; decorations[1] : @=arrow; // see Subobject#arrow decorationPositions[1] : 1; decorationOptions[1] : 'DECORATION_OVER|DECORATION_HALF_RETRACT_AT_END'; arrowMode : ARROW_DECORATION; label : @id; lineWidth : 1.5; endCap : CAP_BUTT; foreground : black; }
Subobject#arrow { class : ilog.views.sdm.graphic.IlvGraphicFactories$Ellipse; IlvRect : 0,0,10,10; // a circle } /////////////// // The vertical link inherits from "link { ... }" rule, and // overwrites some options #link2 { decorations[1] : @=arrow2; // see Subobject#arrow2 decorationOptions[1] : 'DECORATION_OVER|DECORATION_FULL_RETRACT_AT_END'; } Subobject#arrow2 { class : ilog.views.sdm.graphic.IlvGraphicFactories$Marker; IlvRect : 5,5,5,5; type : 2; // a diamond }