clear method

  1. @override
Future<bool> clear({
  1. int? start,
  2. int? end,
})
override

Implementation

@override
Future<bool> clear({int? start, int? end}) async {
  if ((data != null) && (data!.isNotEmpty)) {
    int from = 0;
    int to = data!.length - 1;

    if (start != null) {
      if (start.isNegative) {
        from = data!.length + start;
      } else {
        from = start;
      }
      if (end == null) to = from;
    }

    if (end != null) {
      if (end >= 0) {
        to = end;
        if (to >= data!.length) to = data!.length - 1;
      } else {
        to = data!.length + end;
      }
    }

    if ((from <= to) &&
        (from >= 0) &&
        (from < data!.length) &&
        (to >= 0) &&
        (to < data!.length)) {
      Data data = Data();
      int i = 0;
      for (var row in this.data!) {
        if ((i < from) || (i > to)) data.add(row);
        i++;
      }
      this.data = data;
    }
  }
  return true;
}