2016-10-04 13 views
0

化合物ノードは、他の親との間に接続があり、子ノードが接続を持たない場合、レイアウトに従わないようです。cytoscape.js複合ノードはレイアウトを無視しますか?

elements: { 
nodes: [ 
{"data":{"id":"SimpleTest"}}, 
{"data":{"id":"child1","parent":"SimpleTest"}}, 
{"data":{"id":"child2","parent":"SimpleTest"}}, 
{"data":{"id":"subParent1"}}, 
{"data":{"id":"terminal0_socket","parent":"subParent1"}}, 
{"data":{"id":"subParent2"}},       
{"data":{"id":"terminal1_socket","parent":"subParent2"}}, 
{"data":{"id":"terminal0"}}, 
{"data":{"id":"terminal1"}} 
], 
edges: [ 
{"data":{"source":"SimpleTest","target":"subParent1"}}, 
{"data":{"source":"SimpleTest","target":"subParent2"}}, 
{"data":{"source":"terminal0_socket","target":"terminal0"}}, 
{"data":{"source":"terminal1_socket","target":"terminal1"}} 
] 
}, 

unparentedノードへの子供からのリンクは、レイアウトによって光栄ですが、:これで自分のデータを交換することにより

http://jsbin.com/gist/e52c2fbc0b09edd6ec46?html,output

:表示する最良の方法は、彼らのDAGRE例を修正することですSimpleTestと2つのサブ親とのリンクはありません。

私は、クラスを割り当ててlayout()をサブグラフに渡し、残りのノードでグリッドを実行するだけで、両方のノードでレイアウトを実行しようとしましたが、どちらも動作していません。

このケースの処理方法の例がありますか?彼らのウェブサイト上の2つの例に表示されています(私が間違っていない限り)、彼らは手動で親の位置を設定しています。

私が見ることができる唯一の回避策は、レイアウトを実行するために子供の間にダミーのリンクを追加し、グラフからフィルタリングしたり後で非表示にしたりする方法です見て...

ありがとう!

答えて

0

化合物グラフは標準グラフではないため、化合物のサポートを明示的に示すレイアウトのみが、特殊な複合ケースを処理することが期待できます。 Dagreは外部の図書館であり、化合物の概念はありません。

関連する問題