TreeModel<T> constructor

TreeModel<T>({
  1. required Iterable<TreeItem<T>> items,
  2. int height = 0,
  3. int width = 0,
  4. int indentSize = 2,
  5. int mouseWheelDelta = 3,
  6. String? initialSelectedId,
  7. TreeKeyMap? keyMap,
  8. TreeStyles? styles,
})

Implementation

TreeModel({
  required Iterable<TreeItem<T>> items,
  this.height = 0,
  this.width = 0,
  this.indentSize = 2,
  this.mouseWheelDelta = 3,
  String? initialSelectedId,
  TreeKeyMap? keyMap,
  TreeStyles? styles,
}) : assert(height >= 0),
     assert(width >= 0),
     assert(indentSize >= 2),
     assert(mouseWheelDelta > 0),
     keyMap = keyMap ?? TreeKeyMap(),
     styles = styles ?? TreeStyles(),
     _items = List.unmodifiable(items) {
  _validateUniqueIds(_items);
  _seedExpansion(_items);
  final projected = _projectRows();
  final requestedIndex = initialSelectedId == null
      ? -1
      : projected.indexWhere((row) => row.item.id == initialSelectedId);
  _cursor = requestedIndex >= 0
      ? requestedIndex
      : _firstSelectableIndex(projected);
  _clampState();
}