【问题标题】:GoJS how can I arrange the nodes in a palette and diagram top downGoJS如何在调色板和图表中自上而下排列节点
【发布时间】:2015-01-29 04:20:26
【问题描述】:

我有一个调色板和图表并排使用相同的模板。

  var template = $(go.Node, "Horizontal",
  $(go.Shape,
    { width: 15, height: 15, fill: "white" },
    new go.Binding("fill", "color")),
  $(go.TextBlock,
    new go.Binding("text", "color"))
);

我想将节点自上而下排列,然后一个节点到达底部,它会扭曲并在前一个“列”旁边再次自上而下开始

有什么想法可以做到这一点吗?我需要改变他的模板还是有一些设置来实现这个

这是我所拥有的小提琴:http://jsfiddle.net/loanburger/v61bufs0/

我的最终目标是在调色板中有一个电子邮件列表,然后将它们拖到图表中以获得包含列表

谢谢,

【问题讨论】:

    标签: javascript jquery gojs


    【解决方案1】:

    我已经找到了解决方案,并将详细回答这个问题,以便其他人受益:

    为了完成我在为调色板和图表拆分模板之后的工作,因此每个模板都有自己的。

    在图表上,我不希望节点可拖动,因此我将其模板设置为 movable: false,因此用户无法再次拖动节点。

    然后在创建图表时,您可以指定布局。所以使用 GridLayout 我做了以下事情:

    var  myDiagram = $(go.Diagram, "myDiagramDiv", 
    {
       layout: $(go.GridLayout,
       {
                    cellSize: new go.Size(200, 20),
                    wrappingColumn: 1
        }),     
       "undoManager.isEnabled": true 
    }); 
    

    我指定了一个列。

    我还将 contentAlighment 属性设置为左上角:

    myDiagram.startTransaction("");
    myDiagram.contentAlignment = go.Spot.TopLeft;
    myDiagram.commitTransaction("");    
    

    由于我不希望图表节点可拖动,因此我也设置了myDiagram.allowDragOut= false;,以便无法将节点拖出图表。我发现如果我不这样做,即使一个节点在被选中时不可拖动,我也可以拖动选择

    托盘与布局的概念相同:

      var myPalette = $(go.Palette, "myPaletteDiv",
        {
            layout: $(go.GridLayout,
            {
                cellSize: new go.Size(200, 20),
                wrappingColumn: 1
            })      
        });
    

    还有 contentAlighment 属性:

    myPalette.startTransaction("");
    myPalette.contentAlignment = go.Spot.TopLeft;
    myPalette.commitTransaction("");
    

    最终结果可以在这个修改后的 JS Fiddle 中查看:http://jsfiddle.net/loanburger/v61bufs0/9/

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多