• <menu id="w2i4a"></menu>
  • logo GoJS教程2020

    文檔首頁(yè)>>GoJS教程2020>>流程圖控件GoJS教程:調(diào)色板圖

    流程圖控件GoJS教程:調(diào)色板圖


    GoJS是一款功能強(qiáng)大,快速且輕量級(jí)的流程圖控件,可幫助你在JavaScript 和HTML5 Canvas程序中創(chuàng)建流程圖,且極大地簡(jiǎn)化您的JavaScript / Canvas 程序。

    點(diǎn)擊下載GoJS最新試用版


    調(diào)色板是的一個(gè)子類圖,用于顯示多個(gè)零件表示可以被拖動(dòng)到正在由用戶修改的示圖。一個(gè)的初始化調(diào)色板就像任何的初始化圖。像圖表一樣,您可以在頁(yè)面上同時(shí)擁有多個(gè)調(diào)色板。

    以下代碼在下面的右側(cè)初始化了一個(gè)空的Diagram。請(qǐng)注意,Diagram.allowDrop必須為true,現(xiàn)在默認(rèn)情況下為true。在此示例中,我們無(wú)需費(fèi)心用任何節(jié)點(diǎn)數(shù)據(jù)初始化模型。

    該代碼還以與任何Diagram相同的方式創(chuàng)建了兩個(gè)Palette。您初始化組件面板的模型以顯示該組件面板中的節(jié)點(diǎn)。

      diagram.nodeTemplate =
        $(go.Node, "Auto",
          $(go.Shape, "RoundedRectangle",
            { fill: "white" },
            new go.Binding("fill", "color"),
            { portId: "", fromLinkable: true, toLinkable: true, cursor: "pointer" }),
          $(go.TextBlock, { margin: 5 },
            new go.Binding("text", "key"))
        );
    
      diagram.undoManager.isEnabled = true;
    
      // create the Palette
      var myPalette =
        $(go.Palette, "myPaletteDiv");
    
      // the Palette's node template is different from the main Diagram's
      myPalette.nodeTemplate =
        $(go.Node, "Horizontal",
          $(go.Shape,
            { width: 14, height: 14, fill: "white" },
            new go.Binding("fill", "color")),
          $(go.TextBlock,
            new go.Binding("text", "color"))
        );
    
      // the list of data to show in the Palette
      myPalette.model.nodeDataArray = [
        { key: "C", color: "cyan" },
        { key: "LC", color: "lightcyan" },
        { key: "A", color: "aquamarine" },
        { key: "T", color: "turquoise" },
        { key: "PB", color: "powderblue" },
        { key: "LB", color: "lightblue" },
        { key: "LSB", color: "lightskyblue" },
        { key: "DSB", color: "deepskyblue" }
      ];
    
      // create the Palette
      var myPalette2 =
        $(go.Palette, "myPaletteDiv2",
          { // customize the GridLayout to align the centers of the locationObjects
            layout: $(go.GridLayout, { alignment: go.GridLayout.Location })
          });
    
      // the Palette's node template is different from the main Diagram's
      myPalette2.nodeTemplate =
        $(go.Node, "Vertical",
          { locationObjectName: "TB", locationSpot: go.Spot.Center },
          $(go.Shape,
            { width: 20, height: 20, fill: "white" },
            new go.Binding("fill", "color")),
          $(go.TextBlock, { name: "TB" },
            new go.Binding("text", "color"))
        );
    
      // the list of data to show in the Palette
      myPalette2.model.nodeDataArray = [
        { key: "IR", color: "indianred" },
        { key: "LC", color: "lightcoral" },
        { key: "S", color: "salmon" },
        { key: "DS", color: "darksalmon" },
        { key: "LS", color: "lightsalmon" }
      ];

    首先,請(qǐng)注意,盡管兩個(gè)調(diào)色板都已使用相同類型的模型數(shù)據(jù)初始化,但是調(diào)色板中的項(xiàng)目外觀不同,因?yàn)閮烧呤褂玫墓?jié)點(diǎn)模板不同。

    此外,當(dāng)您從任一側(cè)的面板中將零件拖動(dòng)到中間的圖表中時(shí),外觀會(huì)發(fā)生變化,因?yàn)閳D表使用了第三個(gè)節(jié)點(diǎn)模板。 被拖動(dòng)的只是模型數(shù)據(jù),而不是實(shí)際的Node。 因?yàn)槊總€(gè)圖都可以使用其自己的模板,所以可以完全不同地表示相同的數(shù)據(jù)對(duì)象。

    如果您希望組件面板顯示與主圖表完全相同的相同節(jié)點(diǎn)的相同數(shù)據(jù),則可以讓它共享主圖表的模板:

      myPalette.nodeTemplateMap = myDiagram.nodeTemplateMap;

    因?yàn)镻alette繼承自Diagram,所以您可以按常規(guī)方式自定義它。如果希望其零件小于或大于正常,則可以決定設(shè)置其Diagram.initialScale。

    自定義調(diào)色板中零件的順序也很普遍。調(diào)色板的layout屬性是GridLayout,因此您可以將其GridLayout.sorting屬性以及需要時(shí)將其GridLayout.comparer屬性設(shè)置為自定義排序功能。例如,如果您希望組件面板以完全相同的順序顯示它們?cè)诹慵谐霈F(xiàn)的順序myPalette.model.nodeDataArray:

      myPalette.layout.sorting = go.GridLayout.Forward;
    如果要根據(jù)模型數(shù)據(jù)上的某些屬性對(duì)組件面板中的零件進(jìn)行排序:

      myPalette.layout.comparer = function(a, b) {
          // A and B are Parts
          var av = a.data.someProp;
          var bv = b.data.someProp;
          if (av < bv) return -1;
          if (av > bv) return 1;
          return 0;
        };

    ====================================================

    想要購(gòu)買(mǎi)GoJS正版授權(quán)的朋友可以咨詢慧都官方客服

    有關(guān)產(chǎn)品的最新消息和最新資訊,歡迎掃描關(guān)注下方微信公眾號(hào)

    流程圖控件GoJS教程:調(diào)色板圖

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();