ローカル・プロパティー

ローカル・プロパティーに対するサーバー・サイドの値は、ノードまたはリンクの parentNodeLayout および parentLinkLayout オブジェクトに対して割り当てることができます。
プロパティー 説明
<クライアント・サイド・ローカル・プロパティー名> 対応するクライアント・サイド・レイアウト・クラス内に getter または setter 関数によって定義されるノードまたはリンク疑似プロパティーの名前。数値、ブール値、ポイント、および長方形のすべてのタイプのローカル・プロパティーを指定できます。
以下の例では、hierarchical レイアウトで 4 つのローカル・プロパティーの値を設定します。
"parentNodeLayout":{
                  "linkStyle": 1,
                  "linkPriority": 123,
                  "fromPortIndex": 3,
                  "toPortIndex": 5
},
この例では、HierarchicalLayout クラスの関数 getLinkStyle および setLinkStyle が、ローカル・プロパティー名 linkStyle に対応しています。
サーバーに送信されたグラフでは、parentNodeLayout および parentLinkLayout オブジェクトは、nodeLayout および linkLayout が存在するグラフまたはサブグラフのあらゆるノードまたはリンクに存在することができます。所定のノードまたはリンクに parentNodeLayout および parentLinkLayout オブジェクトがないと、そのノードまたはリンクには、ローカルのノード・レイアウト・プロパティーおよびリンク・レイアウト・プロパティーがないことを示しています。

ノード・プロパティー

プロパティー 説明
id ノードの固有 ID。リンクの作成時に使用されます。
b ノードのバウンディング・ボックスで、4 つの数値 (x 座標、y 座標、幅、および高さ) の配列として指定されます。 バウンディング・ボックスの値は、ノードの親の座標空間内に表されます。
parentNodeLayout ノードを含むグラフのノード・レイアウトに対するノードのローカル・プロパティーを含むオブジェクト。 ローカル・プロパティーを参照してください。
parentLinkLayout ノードを含むグラフのリンク・レイアウトに対するノードのローカル・プロパティーを含むオブジェクト。 ローカル・プロパティーを参照してください。

リンク・プロパティー

プロパティー 説明
id ノードの固有 ID。リンク作成時に使用され、サーバー・サイド・レイアウト後のクライアント独自のモデル更新時にクライアントによって使用されます。
f 開始ノード。リンクのソースのノードからの ID 値。
t 終了ノード。リンクのターゲットのノードの ID 値。
fp 開始ポイント。from point・コネクターのオプションの座標で、x および y 座標の 2 つの数値の JSON 配列として指定されます。 指定されない場合、from pointはノードの中央を使用して設定されます。 サーバー応答では、レイアウトが接続ポイントを移動していない場合、このプロパティーを省略します。その場合、クライアントは、元の接続ポイントを変更しないで保持する必要があります。
tp 終了ポイント。to point・コネクターのオプションの座標で、x および y 座標の 2 つの数値の JSON 配列として指定されます。 指定されない場合、to pointはノードの中央を使用して設定されます。 サーバー応答では、レイアウトが接続ポイントを移動していない場合、このプロパティーを省略します。その場合、クライアントは、元の接続ポイントを変更しないで保持する必要があります。
ip リンクの中間点のオプション・リストで、(x,y) 座標の配列の配列として指定されます (例: [[10,20], [30,40]])。 リンクは、指定された点を通って描かれます。このプロパティーがないと、リンクはノード間の直線になります。
sp リンク始点が固定されている場合 true になります (BasicPort.isMovable は true を返します)。指定されない場合、リンク始点は固定されません。
ep リンク終端が固定されている場合 true になります (BasicPort.isMovable は true を返します)。指定されない場合、リンク終端は固定されません。
w リンクの幅。
parentNodeLayout リンクを含むグラフのノード・レイアウトに対するリンクのローカル・プロパティーを含むオブジェクト。 ローカル・プロパティーを参照してください。
parentLinkLayout リンクを含むグラフのリンク・レイアウトに対するリンクのローカル・プロパティーを含むオブジェクト。 ローカル・プロパティーを参照してください。
幾何学要素のすべての値 (ポイントの位置および幅) は、リンクの親の座標空間内に表されます。
サーバー応答では、レイアウト実行がノード・レイアウトまたはリンク・レイアウトによってレイアウトしないすべてのリンクを省略します。この動作は、ポイントが移動、追加、また削除もされていない場合に発生します。

サブグラフ

ノードに有効なプロパティーは、すべてサブグラフに対しても有効です。以下のプロパティーは、サブグラフでも有効です。
プロパティー 説明
gb サブグラフ内部のグラフのバウンディング・ボックスで、4 つの数値 (x 座標、y 座標、幅、および高さ) の配列として指定されます。バウンディング・ボックスの値は、サブグラフの親と同じ座標空間内に表されます。これらの値を使用して、サブグラフのマージンが計算されます。
m サブグラフ内部のグラフの座標空間からサブグラフの座標空間に対する変換マトリックスを定義します。 これは、6 つの数値 (xx、xy、yx、yy、dx、および dy) の配列として指定されます。このプロパティーがないと、ID マトリックスを指定するのと等価になります。
クライアント・サイド・サブグラフが省略された状態の場合 (Subgraph.isCollapsed は true を返します)、サブグラフのノードおよびリンクを記述しないでください。代わりに、サブグラフを通常のノードであるかのように記述してください。

グラフ間リンクのある入れ子グラフ

任意のノードにはサブグラフを入れることができ、任意のグラフまたはサブグラフの任意の 2 つのノードはリンクでつなぐことができます。リンクでつなぐためには、 各ノードが一意的に識別可能であることが重要です。
以下の例は、サブグラフおよびグラフ間リンクのあるグラフを示しています。
{
"nodeLayout": {"algorithm":"forcedirected"},
"nodes":[
   {"id":"object1", "b":[120, 400, 20, 20]},
   {"id":"object2", "b":[170, 400, 20, 20]},
   {
      "id":"subgraph1", 
      "b":[500,300,200,200],
      "gb":[510,310,180,180],
      "m":[1,0,0,1,12,30],
      "nodeLayout": {"algorithm":"forcedirected"},
      "nodes":[
         {"id":"subgraph1/object1", "b":[0, 0, 20, 20]},
         {"id":"subgraph1/object2", "b":[100, 120, 20, 20]}
      ],
      "links":[
         {"id":"igLink", "f":"subgraph1/object1", "t":"object2"}
      ]
   }
],

"links":[
   {"id":"myLink", "f":"object1", "t":"object2", "ip":[[20,20],[40,20],[40,40]]}
]
}
この例のサブグラフは、バウンディング・ボックスのあるノードとして定義されています。 サブグラフのノードから親グラフのノードに対してグラフ間リンクがあります。すべてのサブグラフにわたりすべてのノードに固有 ID がある限り、サーバー・コードによるネーミング構造は必要ありません。重複する ID が検出されると、グラフ・レイアウトは失敗します。
省略されたサブグラフ内部のノードで開始または終了し、他の先端が省略されていないグラフ内にあるグラフ間リンクの JSON 記述は、元の先端ノードではなく可視の先端ノードを使用する必要があります。可視の先端ノードは、省略された状態にない先端ノードの最も近い親になります。