buildColumns method

List<DataColumn> buildColumns(
  1. BuildContext context
)

Implementation

List<DataColumn> buildColumns(BuildContext context) {
  final columns = <DataColumn>[];

  if (widget.showCheckboxColumn && hasSelectionFeature) {
    columns.add(
      DataColumn(
        label: Checkbox(
          value: allItemsSelected,
          onChanged: widget.onSelectAll,
          tristate: true,
        ),
      ),
    );
  }

  if (hasItems) {
    columns.addAll(items.first.columns.map(
      (e) {
        final columnName = e.toString();
        final isCurrentSortColumn = currentSort?.column == columnName;

        return DataColumn(
          label: buildColumnHeader(columnName, isCurrentSortColumn),
          onSort: canSort
              ? (columnIndex, ascending) => handleSort(columnName, ascending)
              : null,
          tooltip: canSort ? 'Ordenar por $columnName' : null,
        );
      },
    ));

    if (widget.actions.isNotEmpty) {
      columns.add(
        const DataColumn(
          label: XfdnText(
            'Ações',
            textColor: Colors.black,
            fontWeight: FontWeight.w600,
          ),
        ),
      );
    }
  }

  return columns;
}