TCrudTable<T, K, F extends TFormBase> constructor
const
TCrudTable<T, K, F extends TFormBase> ({
- Key? key,
- required List<
TTableHeader< headers,T, K> > - List<
T> ? items, - TLoadListener<
T> ? onLoad, - ItemKeyAccessor<
T, K> ? itemKey, - List<
T> ? itemChildren(- T item
- List<
T> ? archivedItems, - TLoadListener<
T> ? onArchiveLoad, - F createForm()?,
- F editForm(
- T item
- Future<
T?> onCreate(- F form
- Future<
void> onView(- T item
- Future<
T?> onEdit(- T item,
- F form
- Future<
bool?> onArchive(- T item
- Future<
bool?> onRestore(- T item
- Future<
bool?> onDelete(- T item
- TCrudConfig<
T, K> config = const TCrudConfig(), - TListController<
T, K> ? controller, - TControllerReadyListener<
T, K> ? onControllerReady, - TListController<
T, K> ? archiveController, - void onArchiveControllerReady(
- TListController<
T, K> controller
- TListController<
- TListExpandedBuilder<
T, K> ? expandedBuilder, - TTableDetails<
T, K> ? expandedDetails, - TTableExpansionMode expansionMode = TTableExpansionMode.dialog,
- TTableExpansionMode? createMode,
- double? dialogWidth,
- double? createDialogWidth,
- double? sideOverlayWidth,
- double? createSideOverlayWidth,
- String? itemTitle(
- T x
- String? itemSubTitle(
- T x
- String? itemDescription(
- T x
- String? itemImageUrl(
- T x
- List<
TKeyValue> ? itemInfo(- T x
- bool itemInfoGridInline = true,
- TTableTheme? theme,
- Widget rowBuilder(
- BuildContext ctx,
- TListItem<
T, K> item, - int index,
- Widget row,
- Color? rowColorBuilder()?,
Creates a CRUD table.
Implementation
const TCrudTable({
super.key,
required this.headers,
this.items,
this.onLoad,
this.itemKey,
this.itemChildren,
this.archivedItems,
this.onArchiveLoad,
this.createForm,
this.editForm,
this.onCreate,
this.onView,
this.onEdit,
this.onArchive,
this.onRestore,
this.onDelete,
this.config = const TCrudConfig(),
this.controller,
this.onControllerReady,
this.archiveController,
this.onArchiveControllerReady,
this.expandedBuilder,
this.expandedDetails,
this.expansionMode = TTableExpansionMode.dialog,
this.createMode,
this.dialogWidth,
this.createDialogWidth,
this.sideOverlayWidth,
this.createSideOverlayWidth,
this.itemTitle,
this.itemSubTitle,
this.itemDescription,
this.itemImageUrl,
this.itemInfo,
this.itemInfoGridInline = true,
this.theme,
this.rowBuilder,
this.rowColorBuilder,
}) : assert(
controller == null || (items == null && onLoad == null && onControllerReady == null && itemKey == null && itemChildren == null),
'Provide either `controller` OR (`items` / `onLoad` / `onControllerReady` / `itemKey`), not both.',
),
assert(
archiveController == null || (archivedItems == null && onArchiveLoad == null && onArchiveControllerReady == null),
'Provide either `archiveController` OR (`archivedItems` / `onArchiveLoad` / `onArchiveControllerReady`), not both.',
);