JavaScriptのInfoVisツールキット、特にSpaceTreeの視覚化を使用しています。JavascriptのInfoVis SpaceTree `ST.select()`メソッドがノードを折り畳まないようにするにはどうすればよいですか?
ツリーのすべてを展開し、特定のリーフノードからルートに戻るパスを表示する必要があります。
ツリーはきれいに広がっていますが、それは葉ノードの選択であり、ルートに戻ってパスを強調表示しているので、いくつかの問題を引き起こしています。
私は関心のある葉ノードを選択するためにST.select(node, onComplete)
関数を使用しています。ルート(行とノード)へのパスが強調表示されています。
onBeforePlotNode
と
onBeforePlotLine
ST.Controller
メソッドを実装し:
onBeforePlotNode: function(node){
//add some color to the nodes in the path between the
//root node and the selected node.
if (node.selected) {
node.data.$color = "#dddddd";
} else {
delete node.data.$color;
}
},
onBeforePlotLine: function(adj){
if (adj.nodeFrom.selected && adj.nodeTo.selected) {
adj.data.$color = "#33CC33";
adj.data.$lineWidth = 5;
} else {
delete adj.data.$color;
delete adj.data.$lineWidth;
}
}
問題は、私はST.select()
を呼び出すときにリーフノードを強調することですこのレベルの下にあるすべての子ノードは折りたたまれて隠されています。この動作を確認するには
私は例をいくつアップロードした:ブラウザウィンドウが少し小さいです場合は、下にスクロールする必要があるかもしれません
Full tree expansion - leaf not selected
Leaf selected - path shown, but all children below node N2 missing
を。
私の質問は、レベル3の子供(レベル1がルート)を崩壊させることなく、葉ノードからノードをJavaScript InfoVisのルートノードに戻す方法を示します。
その後、私がやってhappingことと思います私のleafeノードを見つけて(途中でスタイルを設定する)ルートに戻って、ツリーを歩くための方法があった場合は、その
あなたはスターです! – Kev