翻譯|使用教程|編輯:吳園園|2019-12-26 11:10:02.897|閱讀 1618 次
概述:樹狀圖可能會變得非常大。簡化圖的一種方法是隱藏樹的分支。“折疊”樹節點意味著不顯示其所有子節點及其鏈接,并遞歸折疊所有具有子節點的子節點。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
GoJS是一款功能強大,快速且輕量級的流程圖控件,可幫助你在JavaScript 和HTML5 Canvas程序中創建流程圖,且極大地簡化您的JavaScript / Canvas 程序。
SubTrees
樹形圖可能會變得非常大。簡化圖的一種方法是隱藏樹的分支。“折疊”樹節點意味著不顯示其所有子節點及其鏈接,并遞歸折疊所有具有子節點的子節點。
要折疊樹中的節點,請將Node.isTreeExpanded設置為false。為了確保它被擴展,將該屬性設置為true。您不應在不是GraphObject.visible的Node上將此屬性設置為true 。
通常,在節點上提供一個按鈕以允許用戶根據需要折疊和展開子樹。 GoJS通過提供一種預定義的面板,稱為“ TreeExpanderButton”,使該面板易于實現,該面板用作折疊和展開節點子樹的按鈕。此按鈕更改子樹除節點本身以外的所有部分的可見性。
單擊擴展器按鈕也會使對節點負責的布局無效。折疊子樹通常會導致較大的空白區域,而展開子樹通常會導致節點重疊,因此應再次執行新的布局以使樹看起來更好。
diagram.nodeTemplate = $(go.Node, "Horizontal", $(go.Panel, "Auto", $(go.Shape, "Ellipse", { fill: null }), $(go.TextBlock, new go.Binding("text", "key")) ), $("TreeExpanderButton") ); diagram.layout = $(go.TreeLayout); var nodeDataArray = [ { key: "Alpha" }, { key: "Beta" }, { key: "Gamma" }, { key: "Delta" }, { key: "Epsilon" }, { key: "Zeta" }, { key: "Eta" }, { key: "Theta" } ]; var linkDataArray = [ { from: "Alpha", to: "Beta" }, { from: "Beta", to: "Gamma" }, { from: "Beta", to: "Delta" }, { from: "Alpha", to: "Epsilon" }, { from: "Epsilon", to: "Zeta" }, { from: "Epsilon", to: "Eta" }, { from: "Epsilon", to: "Theta" } ]; diagram.model = new go.GraphLinksModel(nodeDataArray, linkDataArray);
請注意,如果先折疊“ Beta”節點,然后折疊“ Alpha”根節點,然后再展開“ Alpha”節點,則“ Beta”節點將保持折疊狀態,而“ Epsilon”節點將保持展開狀態。這是因為折疊操作會記住子樹內節點的狀態,即屬性Node.wasTreeExpanded。通過子樹遞歸時,擴展操作會尊重該屬性的值。
您可能還想從樹上開始大部分或完全崩潰。首先,在模板中將Node.isTreeExpanded設置為false。這將僅顯示樹的根。其次,如果要顯示樹的三個級別,請調用Node.expandTree。
diagram.nodeTemplate = $(go.Node, "Horizontal", { isTreeExpanded: false }, // by default collapsed $(go.Panel, "Auto", $(go.Shape, "Ellipse", { fill: null }), $(go.TextBlock, new go.Binding("text", "key")) ), $("TreeExpanderButton") ); diagram.layout = $(go.TreeLayout); // After the nodes and links have been created, // expand each of the tree roots to 3 levels deep. diagram.addDiagramListener("InitialLayoutCompleted", function(e) { e.diagram.findTreeRoots().each(function(r) { r.expandTree(3); }); }); var nodeDataArray = [ { key: "Alpha" }, { key: "Beta" }, { key: "Gamma" }, { key: "Delta" }, { key: "Epsilon" }, { key: "Zeta" }, { key: "Eta" }, { key: "Theta" }, { key: "Iota" }, { key: "Kappa" }, { key: "Lambda" } ]; var linkDataArray = [ { from: "Alpha", to: "Beta" }, { from: "Beta", to: "Gamma" }, { from: "Beta", to: "Delta" }, { from: "Alpha", to: "Epsilon" }, { from: "Epsilon", to: "Zeta" }, { from: "Epsilon", to: "Eta" }, { from: "Eta", to: "Theta" }, { from: "Gamma", to: "Iota" }, { from: "Iota", to: "Kappa" }, { from: "Iota", to: "Lambda" } ]; diagram.model = new go.GraphLinksModel(nodeDataArray, linkDataArray);
====================================================
想要購買GoJS正版授權的朋友可以
有關產品的最新消息和最新資訊,歡迎掃描關注下方微信公眾號
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: