resetColumnsOrder method

void resetColumnsOrder(
  1. TColumnOrder columnOrder
)

Implementation

void resetColumnsOrder(TColumnOrder columnOrder) {
  final l = <TColumn>[];
  for (var i = 0; i < count; i++) {
    l.add(this[i]);
  }
  switch (columnOrder) {
    case TColumnOrder.coDesignOrder:
      if (!hasDesignColumns()) return;
      // CompareDesignIndex (L4223-4226)
      l.sort((a, b) => a.designIndex - b.designIndex);
      break;
    case TColumnOrder.coFieldIndexOrder:
      // CompareFieldIndex (L4211-4221): a nil field sorts to the end
      l.sort((a, b) {
        if (identical(a, b)) return 0;
        if (a.field == null) return 1;
        if (b.field == null) return -1;
        return a.field!.index - b.field!.index;
      });
      break;
  }
  for (var i = 0; i < l.length; i++) {
    l[i].index = i;
  }
}