sortData method

dynamic sortData(
  1. List<List<PlexDataCell>> data
)

Implementation

sortData(List<List<PlexDataCell>> data) {
  if (sortColumnIndex == null) {
    setState(() {
      updatedData = data;
      _dataSource = _PaginationDataTableSource(context,
          enableCopy: widget.enableCopy,
          dataList: updatedData,
          alternateColor: widget.alternateColor);
    });
    return;
  }

  data.sort((r1, r2) {
    var value1 = !r1[sortColumnIndex!].isNumber
        ? r1[sortColumnIndex!].value
        : ((r1[sortColumnIndex!].value is int?)
            ? r1[sortColumnIndex!].value as int?
            : (r1[sortColumnIndex!].value is double?)
                ? r1[sortColumnIndex!].value as double?
                : null);
    var value2 = !r2[sortColumnIndex!].isNumber
        ? r2[sortColumnIndex!].value
        : ((r2[sortColumnIndex!].value is int?)
            ? r2[sortColumnIndex!].value as int?
            : (r2[sortColumnIndex!].value is double?)
                ? r2[sortColumnIndex!].value as double?
                : null);
    try {
      if (sortAscending) {
        return (value1).compareTo(value2);
      } else {
        return value2.compareTo(value1);
      }
    } catch (e) {
      return sortAscending ? -1 : 1;
    }
  });

  setState(() {
    updatedData = data;
    _dataSource = _PaginationDataTableSource(context,
        enableCopy: widget.enableCopy,
        dataList: updatedData,
        alternateColor: widget.alternateColor);
  });
}