sortData method
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);
});
}