editablegrid 0.0.4 copy "editablegrid: ^0.0.4" to clipboard
editablegrid: ^0.0.4 copied to clipboard

outdated

A library created to speed up and simplify the process of creating simple editable grids.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:editablegrid/editable-grid.dart';
import 'package:editablegrid/models/grid-headers.dart';
import 'package:editablegrid/widgets/editable/editable-cell.dart';
import 'utils/grid-builder.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) => MaterialApp(
        title: 'Editable Grid',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        //Examples:
        //Multi-headers
        home: MultiHeadersGrid(),
        //Column headers only
        //home: ColumnHeadersGrid(),
        //Row headers only
        //home: RowHeadersGrid(),
      );
}

///Sample class that showcase the use of the editable-grid package for grids with multiple headers.
class MultiHeadersGrid extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _MultiHeadersGridState();
}

class _MultiHeadersGridState extends State<MultiHeadersGrid> {
  @override
  Widget build(BuildContext context) {
    var mocks = CellsMock();

    return GridBuilder.buildGridWrap(
        context: context,
        appBarTitle: 'Multi-headers grid',
        grid: buildGrid(context, mocks),
        editionCompletedCallback: () => mocks.showData(context));
  }

  EditableGridWidget buildGrid(BuildContext context, CellsMock mocks) {
    return EditableGridWidget(
      headers: EditableGridHeaders(
          specifiedHeaders: GridHeaders.Both,
          cHeaders: ["C1", "C2", "C3"],
          rHeaders: ["R1", "R2"]),
      gridCell: [
        //Row 1
        [
          EditableCellWidget(cell: mocks.cellR1C1),
          EditableCellWidget(cell: mocks.cellR1C2),
          EditableCellWidget(cell: mocks.cellR1C3),
        ],
        //Row 2
        [
          EditableCellWidget(cell: mocks.cellR2C1),
          EditableCellWidget(cell: mocks.cellR2C2),
          EditableCellWidget(cell: mocks.cellR2C3),
        ]
      ],
    );
  }
}

///Sample class that showcase the use of the editable-grid package for grids that only specify column headers.
class ColumnHeadersGrid extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _ColumnHeadersGridState();
}

class _ColumnHeadersGridState extends State<ColumnHeadersGrid> {
  @override
  Widget build(BuildContext context) {
    var mocks = CellsMock();

    return GridBuilder.buildGridWrap(
        context: context,
        appBarTitle: 'Column headers only grid',
        grid: buildGrid(context, mocks),
        editionCompletedCallback: () => mocks.showData(context));
  }

  EditableGridWidget buildGrid(BuildContext context, CellsMock mocks) {
    return EditableGridWidget(
      headers: EditableGridHeaders(
        specifiedHeaders: GridHeaders.Columns,
        cHeaders: ["C1", "C2", "C3"],
      ),
      gridCell: [
        //Row 1
        [
          EditableCellWidget(cell: mocks.cellR1C1),
          EditableCellWidget(cell: mocks.cellR1C2),
          EditableCellWidget(cell: mocks.cellR1C3),
        ],
        //Row 2
        [
          EditableCellWidget(cell: mocks.cellR2C1),
          EditableCellWidget(cell: mocks.cellR2C2),
          EditableCellWidget(cell: mocks.cellR2C3),
        ]
      ],
    );
  }
}

///Sample class that showcase the use of the editable-grid package for grids that only specify row headers.
class RowHeadersGrid extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _RowHeadersGridState();
}

class _RowHeadersGridState extends State<RowHeadersGrid> {
  @override
  Widget build(BuildContext context) {
    var mocks = CellsMock();

    return GridBuilder.buildGridWrap(
        context: context,
        appBarTitle: 'Row headers only grid',
        grid: buildGrid(context, mocks),
        editionCompletedCallback: () => mocks.showData(context));
  }

  EditableGridWidget buildGrid(BuildContext context, CellsMock mocks) {
    return EditableGridWidget(
      headers: EditableGridHeaders(
        specifiedHeaders: GridHeaders.Rows,
        rHeaders: ["R1", "R2"],
      ),
      gridCell: [
        //Row 1
        [
          EditableCellWidget(cell: mocks.cellR1C1),
          EditableCellWidget(cell: mocks.cellR1C2),
          EditableCellWidget(cell: mocks.cellR1C3),
        ],
        //Row 2
        [
          EditableCellWidget(cell: mocks.cellR2C1),
          EditableCellWidget(cell: mocks.cellR2C2),
          EditableCellWidget(cell: mocks.cellR2C3),
        ]
      ],
    );
  }
}
1
likes
40
points
48
downloads

Publisher

unverified uploader

Weekly Downloads

A library created to speed up and simplify the process of creating simple editable grids.

Repository (GitHub)

License

BSD-3-Clause (license)

Dependencies

flutter

More

Packages that depend on editablegrid