 var _columnTree = [];

      for (var c = rootColumns; ;) {
        _columnTree.push(c);
        if (!this._hasColumnGroups(c)) {
          break;
        }
        c = this._flattenColumnGroups(c);
      }

      return _columnTree;
    }

    /** @protected */
    _updateColumnTree() {
      var columnTree = this._getColumnTree();
      if (!this._arrayEquals(columnTree, this._columnTree)) {
        this._columnTree = columnTree;
      }
    }

    /** @private */
    _addNodeObserver() {
      this._obs