insertTable static method

Future<UTableData?> insertTable()

Asks for a row/column count and returns a fresh empty table.

Implementation

static Future<UTableData?> insertTable() {
  int rows = 3;
  int columns = 3;
  bool header = true;
  return UNavigator.dialog<UTableData>(
    StatefulBuilder(
      builder: (BuildContext context, StateSetter setInner) => AlertDialog(
        title: Text(U.s.insertTable),
        content: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            _counter(context, U.s.rows, rows, (int v) => setInner(() => rows = v.clamp(1, 20))),
            _counter(context, U.s.columns, columns, (int v) => setInner(() => columns = v.clamp(1, 10))),
            SwitchListTile(
              contentPadding: EdgeInsets.zero,
              value: header,
              title: UTextBodyMedium(U.s.headerRow),
              onChanged: (bool v) => setInner(() => header = v),
            ),
          ],
        ),
        actions: <Widget>[
          TextButton(onPressed: UNavigator.back, child: Text(U.s.cancel)),
          TextButton(
            onPressed: () => UNavigator.back(UTableData.empty(rows: rows, columns: columns)..hasHeader = header),
            child: Text(U.s.insert),
          ),
        ],
      ),
    ),
  );
}