2016-06-30 77 views
1

我實現GOJS圖什麼鏈接如下鏈接顯示在是否有可能控制重複鏈接在GOJS

http://gojs.net/latest/samples/treeMapper.html

我的問題是,是否有可能不允許重複鏈接,如果任何元素在左側/右側已經有連接到它的鏈接?

根據您最初的回答,我已經更新了nodeTemplate代碼如下

myDiagram.nodeTemplate = 
       $(TreeNode, 
       { movable: false }, // user cannot move an individual node 
       // no Adornment: instead change panel background color by binding to Node.isSelected 
       { selectionAdorned: false }, 
       { fromLinkable: true, toLinkable: true,fromMaxLinks: 1,toMaxLinks:1 }, // user can draw link to and from such tree nodes 
       $("TreeExpanderButton", // support expanding/collapsing subtrees 
        { width: 14, height: 14, 
        "ButtonIcon.stroke": "black", 
        "ButtonIcon.strokeWidth": 2, 
        "ButtonBorder.fill": "whitesmoke", 
        "ButtonBorder.stroke": "black", 
        "ButtonBorder.figure": "Rectangle" 
        }), 
       $(go.Panel, "Horizontal", 
        { position: new go.Point(16, 0) }, 
        new go.Binding("background", "isSelected", function(s) { return (s ? "lightblue" : "white"); }).ofObject(), 

        $(go.TextBlock,{ font: '9pt Verdana, sans-serif' }, 
        new go.Binding("text", "Data", function(s) { return s; })) 
       ) // end Horizontal Panel 
      ); // end Node 

注:這不只是一棵樹的實現,這是樹實現爲記錄測繪領域的一部分,如圖我分享的鏈接。

我要的是每個端口應該不會有圖enter image description here

在不止一個鏈接,是服務則params的集裝箱車不應該在設備型號超過一個鏈接到任何其他節點。類似的設備模型中的設備不應該有多個來自服務參數的鏈接。對於所有其他節點也是如此。

回答

0

提高checkLink謂詞如下: function checkLink(fn, fp, tn, tp, link) { // make sure the nodes are inside different Groups if (fn.containingGroup === null || fn.containingGroup.data.key !== -1) return false; if (tn.containingGroup === null || tn.containingGroup.data.key !== -2) return false; // optional limit to a single mapping link per node if (fn.linksConnected.any(function(l) { return l.category === "Mapping"; })) return false; if (tn.linksConnected.any(function(l) { return l.category === "Mapping"; })) return false; return true; }

,並更改節點模板是關於fromLinkabletoLinkable值更聰明,而不是一味它們設置爲true: // whether the user can start drawing a link from or to this node depends on which group it's in new go.Binding("fromLinkable", "group", function(k) { return k === -1; }), new go.Binding("toLinkable", "group", function(k) { return k === -2; }), 不要打擾使用fromMaxLinkstoMaxLinks屬性,因爲它不區分樹映射器樣本使用的不同種類的鏈接。

閱讀更多關於此:http://gojs.net/latest/intro/validation.htmlhttp://gojs.net/latest/intro/ports.html

+0

我不認爲。有效。讓我用代碼和輸出圖更新我的問題。你能檢查並確認我在哪裏做錯了嗎? – Nadvez

相關問題