layout);
    }

    createEdge() {
      return new VirtualizedTreeEdge(this);
    }

    addData(model) {
      if (model instanceof go.TreeModel) {
        const dataVertexMap = new go.Map();
        const ndata = model.nodeDataArray;
        for (let i = 0; i < ndata.length; i++) {
          const d = ndata[i];
          const v = this.createVertex();
          v.data = d; // associate this Vertex with data, not a Node
          dataVertexMap.set(d, v);
          this.addVertex(v);
        }

        for