mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: add AF prefix to appflowy_board classes
This commit is contained in:
parent
08b9930510
commit
8b535720ef
@ -18,12 +18,12 @@ part 'board_bloc.freezed.dart';
|
|||||||
|
|
||||||
class BoardBloc extends Bloc<BoardEvent, BoardState> {
|
class BoardBloc extends Bloc<BoardEvent, BoardState> {
|
||||||
final GridDataController _gridDataController;
|
final GridDataController _gridDataController;
|
||||||
late final BoardDataController boardDataController;
|
late final AFBoardDataController boardDataController;
|
||||||
|
|
||||||
BoardBloc({required ViewPB view})
|
BoardBloc({required ViewPB view})
|
||||||
: _gridDataController = GridDataController(view: view),
|
: _gridDataController = GridDataController(view: view),
|
||||||
super(BoardState.initial(view.id)) {
|
super(BoardState.initial(view.id)) {
|
||||||
boardDataController = BoardDataController(
|
boardDataController = AFBoardDataController(
|
||||||
onMoveColumn: (
|
onMoveColumn: (
|
||||||
fromIndex,
|
fromIndex,
|
||||||
toIndex,
|
toIndex,
|
||||||
@ -120,8 +120,8 @@ class BoardBloc extends Bloc<BoardEvent, BoardState> {
|
|||||||
|
|
||||||
typeOptionContext.loadTypeOptionData(
|
typeOptionContext.loadTypeOptionData(
|
||||||
onCompleted: (singleSelect) {
|
onCompleted: (singleSelect) {
|
||||||
List<BoardColumnData> columns = singleSelect.options.map((option) {
|
List<AFBoardColumnData> columns = singleSelect.options.map((option) {
|
||||||
return BoardColumnData(
|
return AFBoardColumnData(
|
||||||
id: option.id,
|
id: option.id,
|
||||||
desc: option.name,
|
desc: option.name,
|
||||||
customData: option,
|
customData: option,
|
||||||
|
@ -12,13 +12,8 @@
|
|||||||
// typedef OnFieldsChanged = void Function(UnmodifiableListView<FieldPB>);
|
// typedef OnFieldsChanged = void Function(UnmodifiableListView<FieldPB>);
|
||||||
// typedef OnGridChanged = void Function(GridPB);
|
// typedef OnGridChanged = void Function(GridPB);
|
||||||
|
|
||||||
// typedef OnRowsChanged = void Function(
|
|
||||||
// List<GridRowInfo> rowInfos,
|
|
||||||
// GridRowChangeReason,
|
|
||||||
// );
|
|
||||||
// typedef ListenONRowChangedCondition = bool Function();
|
|
||||||
|
|
||||||
// class GridDataController {
|
// class ridDataController {
|
||||||
// final String gridId;
|
// final String gridId;
|
||||||
// final GridService _gridFFIService;
|
// final GridService _gridFFIService;
|
||||||
// final GridFieldCache fieldCache;
|
// final GridFieldCache fieldCache;
|
||||||
|
@ -37,7 +37,7 @@ class BoardPage extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class BoardContent extends StatelessWidget {
|
class BoardContent extends StatelessWidget {
|
||||||
final config = BoardConfig(
|
final config = AFBoardConfig(
|
||||||
columnBackgroundColor: HexColor.fromHex('#F7F8FC'),
|
columnBackgroundColor: HexColor.fromHex('#F7F8FC'),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -51,13 +51,13 @@ class BoardContent extends StatelessWidget {
|
|||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.symmetric(vertical: 30, horizontal: 20),
|
padding: const EdgeInsets.symmetric(vertical: 30, horizontal: 20),
|
||||||
child: Board(
|
child: AFBoard(
|
||||||
dataController: context.read<BoardBloc>().boardDataController,
|
dataController: context.read<BoardBloc>().boardDataController,
|
||||||
headerBuilder: _buildHeader,
|
headerBuilder: _buildHeader,
|
||||||
footBuilder: _buildFooter,
|
footBuilder: _buildFooter,
|
||||||
cardBuilder: _buildCard,
|
cardBuilder: _buildCard,
|
||||||
columnConstraints: const BoxConstraints.tightFor(width: 240),
|
columnConstraints: const BoxConstraints.tightFor(width: 240),
|
||||||
config: BoardConfig(
|
config: AFBoardConfig(
|
||||||
columnBackgroundColor: HexColor.fromHex('#F7F8FC'),
|
columnBackgroundColor: HexColor.fromHex('#F7F8FC'),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -67,7 +67,7 @@ class BoardContent extends StatelessWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildHeader(BuildContext context, BoardColumnData columnData) {
|
Widget _buildHeader(BuildContext context, AFBoardColumnData columnData) {
|
||||||
return AppFlowyColumnHeader(
|
return AppFlowyColumnHeader(
|
||||||
icon: const Icon(Icons.lightbulb_circle),
|
icon: const Icon(Icons.lightbulb_circle),
|
||||||
title: Text(columnData.desc),
|
title: Text(columnData.desc),
|
||||||
@ -78,7 +78,7 @@ class BoardContent extends StatelessWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildFooter(BuildContext context, BoardColumnData columnData) {
|
Widget _buildFooter(BuildContext context, AFBoardColumnData columnData) {
|
||||||
return AppFlowyColumnFooter(
|
return AppFlowyColumnFooter(
|
||||||
icon: const Icon(Icons.add, size: 20),
|
icon: const Icon(Icons.add, size: 20),
|
||||||
title: const Text('New'),
|
title: const Text('New'),
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:app_flowy/plugins/grid/application/field/type_option/multi_select_type_option.dart';
|
import 'package:app_flowy/plugins/grid/application/field/type_option/multi_select_type_option.dart';
|
||||||
|
import 'package:app_flowy/plugins/grid/application/field/type_option/type_option_context.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import '../field_type_option_editor.dart';
|
import '../field_type_option_editor.dart';
|
||||||
@ -9,10 +10,14 @@ class MultiSelectTypeOptionWidgetBuilder extends TypeOptionWidgetBuilder {
|
|||||||
final MultiSelectTypeOptionWidget _widget;
|
final MultiSelectTypeOptionWidget _widget;
|
||||||
|
|
||||||
MultiSelectTypeOptionWidgetBuilder(
|
MultiSelectTypeOptionWidgetBuilder(
|
||||||
MultiSelectAction typeOptionContext,
|
MultiSelectTypeOptionContext typeOptionContext,
|
||||||
TypeOptionOverlayDelegate overlayDelegate,
|
TypeOptionOverlayDelegate overlayDelegate,
|
||||||
) : _widget = MultiSelectTypeOptionWidget(
|
) : _widget = MultiSelectTypeOptionWidget(
|
||||||
typeOptionContext: typeOptionContext,
|
selectOptionAction: MultiSelectAction(
|
||||||
|
fieldId: typeOptionContext.fieldId,
|
||||||
|
gridId: typeOptionContext.gridId,
|
||||||
|
typeOptionContext: typeOptionContext,
|
||||||
|
),
|
||||||
overlayDelegate: overlayDelegate,
|
overlayDelegate: overlayDelegate,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -21,11 +26,11 @@ class MultiSelectTypeOptionWidgetBuilder extends TypeOptionWidgetBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class MultiSelectTypeOptionWidget extends TypeOptionWidget {
|
class MultiSelectTypeOptionWidget extends TypeOptionWidget {
|
||||||
final MultiSelectAction typeOptionContext;
|
final MultiSelectAction selectOptionAction;
|
||||||
final TypeOptionOverlayDelegate overlayDelegate;
|
final TypeOptionOverlayDelegate overlayDelegate;
|
||||||
|
|
||||||
const MultiSelectTypeOptionWidget({
|
const MultiSelectTypeOptionWidget({
|
||||||
required this.typeOptionContext,
|
required this.selectOptionAction,
|
||||||
required this.overlayDelegate,
|
required this.overlayDelegate,
|
||||||
Key? key,
|
Key? key,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
@ -33,10 +38,10 @@ class MultiSelectTypeOptionWidget extends TypeOptionWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return SelectOptionTypeOptionWidget(
|
return SelectOptionTypeOptionWidget(
|
||||||
options: typeOptionContext.typeOption.options,
|
options: selectOptionAction.typeOption.options,
|
||||||
beginEdit: () => overlayDelegate.hideOverlay(context),
|
beginEdit: () => overlayDelegate.hideOverlay(context),
|
||||||
overlayDelegate: overlayDelegate,
|
overlayDelegate: overlayDelegate,
|
||||||
typeOptionAction: typeOptionContext,
|
typeOptionAction: selectOptionAction,
|
||||||
// key: ValueKey(state.typeOption.hashCode),
|
// key: ValueKey(state.typeOption.hashCode),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ class MultiBoardListExample extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _MultiBoardListExampleState extends State<MultiBoardListExample> {
|
class _MultiBoardListExampleState extends State<MultiBoardListExample> {
|
||||||
final BoardDataController boardDataController = BoardDataController(
|
final AFBoardDataController boardDataController = AFBoardDataController(
|
||||||
onMoveColumn: (fromIndex, toIndex) {
|
onMoveColumn: (fromIndex, toIndex) {
|
||||||
debugPrint('Move column from $fromIndex to $toIndex');
|
debugPrint('Move column from $fromIndex to $toIndex');
|
||||||
},
|
},
|
||||||
@ -23,18 +23,18 @@ class _MultiBoardListExampleState extends State<MultiBoardListExample> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
final column1 = BoardColumnData(id: "To Do", items: [
|
final column1 = AFBoardColumnData(id: "To Do", items: [
|
||||||
TextItem("Card 1"),
|
TextItem("Card 1"),
|
||||||
TextItem("Card 2"),
|
TextItem("Card 2"),
|
||||||
RichTextItem(title: "Card 3", subtitle: 'Aug 1, 2020 4:05 PM'),
|
RichTextItem(title: "Card 3", subtitle: 'Aug 1, 2020 4:05 PM'),
|
||||||
TextItem("Card 4"),
|
TextItem("Card 4"),
|
||||||
]);
|
]);
|
||||||
final column2 = BoardColumnData(id: "In Progress", items: [
|
final column2 = AFBoardColumnData(id: "In Progress", items: [
|
||||||
RichTextItem(title: "Card 5", subtitle: 'Aug 1, 2020 4:05 PM'),
|
RichTextItem(title: "Card 5", subtitle: 'Aug 1, 2020 4:05 PM'),
|
||||||
TextItem("Card 6"),
|
TextItem("Card 6"),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
final column3 = BoardColumnData(id: "Done", items: []);
|
final column3 = AFBoardColumnData(id: "Done", items: []);
|
||||||
|
|
||||||
boardDataController.addColumn(column1);
|
boardDataController.addColumn(column1);
|
||||||
boardDataController.addColumn(column2);
|
boardDataController.addColumn(column2);
|
||||||
@ -45,14 +45,14 @@ class _MultiBoardListExampleState extends State<MultiBoardListExample> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final config = BoardConfig(
|
final config = AFBoardConfig(
|
||||||
columnBackgroundColor: HexColor.fromHex('#F7F8FC'),
|
columnBackgroundColor: HexColor.fromHex('#F7F8FC'),
|
||||||
);
|
);
|
||||||
return Container(
|
return Container(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.symmetric(vertical: 30, horizontal: 20),
|
padding: const EdgeInsets.symmetric(vertical: 30, horizontal: 20),
|
||||||
child: Board(
|
child: AFBoard(
|
||||||
dataController: boardDataController,
|
dataController: boardDataController,
|
||||||
footBuilder: (context, columnData) {
|
footBuilder: (context, columnData) {
|
||||||
return AppFlowyColumnFooter(
|
return AppFlowyColumnFooter(
|
||||||
@ -79,7 +79,7 @@ class _MultiBoardListExampleState extends State<MultiBoardListExample> {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
columnConstraints: const BoxConstraints.tightFor(width: 240),
|
columnConstraints: const BoxConstraints.tightFor(width: 240),
|
||||||
config: BoardConfig(
|
config: AFBoardConfig(
|
||||||
columnBackgroundColor: HexColor.fromHex('#F7F8FC'),
|
columnBackgroundColor: HexColor.fromHex('#F7F8FC'),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -9,11 +9,11 @@ class SingleBoardListExample extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _SingleBoardListExampleState extends State<SingleBoardListExample> {
|
class _SingleBoardListExampleState extends State<SingleBoardListExample> {
|
||||||
final BoardDataController boardData = BoardDataController();
|
final AFBoardDataController boardData = AFBoardDataController();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
final column = BoardColumnData(id: "1", items: [
|
final column = AFBoardColumnData(id: "1", items: [
|
||||||
TextItem("a"),
|
TextItem("a"),
|
||||||
TextItem("b"),
|
TextItem("b"),
|
||||||
TextItem("c"),
|
TextItem("c"),
|
||||||
@ -26,7 +26,7 @@ class _SingleBoardListExampleState extends State<SingleBoardListExample> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Board(
|
return AFBoard(
|
||||||
dataController: boardData,
|
dataController: boardData,
|
||||||
cardBuilder: (context, item) {
|
cardBuilder: (context, item) {
|
||||||
return _RowWidget(item: item as TextItem, key: ObjectKey(item));
|
return _RowWidget(item: item as TextItem, key: ObjectKey(item));
|
||||||
|
@ -8,13 +8,13 @@ import 'reorder_flex/reorder_flex.dart';
|
|||||||
import 'reorder_phantom/phantom_controller.dart';
|
import 'reorder_phantom/phantom_controller.dart';
|
||||||
import '../rendering/board_overlay.dart';
|
import '../rendering/board_overlay.dart';
|
||||||
|
|
||||||
class BoardConfig {
|
class AFBoardConfig {
|
||||||
final double cornerRadius;
|
final double cornerRadius;
|
||||||
final EdgeInsets columnPadding;
|
final EdgeInsets columnPadding;
|
||||||
final EdgeInsets columnItemPadding;
|
final EdgeInsets columnItemPadding;
|
||||||
final Color columnBackgroundColor;
|
final Color columnBackgroundColor;
|
||||||
|
|
||||||
const BoardConfig({
|
const AFBoardConfig({
|
||||||
this.cornerRadius = 6.0,
|
this.cornerRadius = 6.0,
|
||||||
this.columnPadding = const EdgeInsets.symmetric(horizontal: 8),
|
this.columnPadding = const EdgeInsets.symmetric(horizontal: 8),
|
||||||
this.columnItemPadding = const EdgeInsets.symmetric(horizontal: 10),
|
this.columnItemPadding = const EdgeInsets.symmetric(horizontal: 10),
|
||||||
@ -22,7 +22,7 @@ class BoardConfig {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
class Board extends StatelessWidget {
|
class AFBoard extends StatelessWidget {
|
||||||
/// The direction to use as the main axis.
|
/// The direction to use as the main axis.
|
||||||
final Axis direction = Axis.vertical;
|
final Axis direction = Axis.vertical;
|
||||||
|
|
||||||
@ -30,32 +30,32 @@ class Board extends StatelessWidget {
|
|||||||
final Widget? background;
|
final Widget? background;
|
||||||
|
|
||||||
///
|
///
|
||||||
final BoardColumnCardBuilder cardBuilder;
|
final AFBoardColumnCardBuilder cardBuilder;
|
||||||
|
|
||||||
///
|
///
|
||||||
final BoardColumnHeaderBuilder? headerBuilder;
|
final AFBoardColumnHeaderBuilder? headerBuilder;
|
||||||
|
|
||||||
///
|
///
|
||||||
final BoardColumnFooterBuilder? footBuilder;
|
final AFBoardColumnFooterBuilder? footBuilder;
|
||||||
|
|
||||||
///
|
///
|
||||||
final BoardDataController dataController;
|
final AFBoardDataController dataController;
|
||||||
|
|
||||||
final BoxConstraints columnConstraints;
|
final BoxConstraints columnConstraints;
|
||||||
|
|
||||||
///
|
///
|
||||||
final BoardPhantomController phantomController;
|
final BoardPhantomController phantomController;
|
||||||
|
|
||||||
final BoardConfig config;
|
final AFBoardConfig config;
|
||||||
|
|
||||||
Board({
|
AFBoard({
|
||||||
required this.dataController,
|
required this.dataController,
|
||||||
required this.cardBuilder,
|
required this.cardBuilder,
|
||||||
this.background,
|
this.background,
|
||||||
this.footBuilder,
|
this.footBuilder,
|
||||||
this.headerBuilder,
|
this.headerBuilder,
|
||||||
this.columnConstraints = const BoxConstraints(maxWidth: 200),
|
this.columnConstraints = const BoxConstraints(maxWidth: 200),
|
||||||
this.config = const BoardConfig(),
|
this.config = const AFBoardConfig(),
|
||||||
Key? key,
|
Key? key,
|
||||||
}) : phantomController = BoardPhantomController(delegate: dataController),
|
}) : phantomController = BoardPhantomController(delegate: dataController),
|
||||||
super(key: key);
|
super(key: key);
|
||||||
@ -64,7 +64,7 @@ class Board extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return ChangeNotifierProvider.value(
|
return ChangeNotifierProvider.value(
|
||||||
value: dataController,
|
value: dataController,
|
||||||
child: Consumer<BoardDataController>(
|
child: Consumer<AFBoardDataController>(
|
||||||
builder: (context, notifier, child) {
|
builder: (context, notifier, child) {
|
||||||
return BoardContent(
|
return BoardContent(
|
||||||
config: config,
|
config: config,
|
||||||
@ -89,20 +89,20 @@ class BoardContent extends StatefulWidget {
|
|||||||
final OnDragStarted? onDragStarted;
|
final OnDragStarted? onDragStarted;
|
||||||
final OnReorder onReorder;
|
final OnReorder onReorder;
|
||||||
final OnDragEnded? onDragEnded;
|
final OnDragEnded? onDragEnded;
|
||||||
final BoardDataController dataController;
|
final AFBoardDataController dataController;
|
||||||
final Widget? background;
|
final Widget? background;
|
||||||
final BoardConfig config;
|
final AFBoardConfig config;
|
||||||
final ReorderFlexConfig reorderFlexConfig;
|
final ReorderFlexConfig reorderFlexConfig;
|
||||||
final BoxConstraints columnConstraints;
|
final BoxConstraints columnConstraints;
|
||||||
|
|
||||||
///
|
///
|
||||||
final BoardColumnCardBuilder cardBuilder;
|
final AFBoardColumnCardBuilder cardBuilder;
|
||||||
|
|
||||||
///
|
///
|
||||||
final BoardColumnHeaderBuilder? headerBuilder;
|
final AFBoardColumnHeaderBuilder? headerBuilder;
|
||||||
|
|
||||||
///
|
///
|
||||||
final BoardColumnFooterBuilder? footBuilder;
|
final AFBoardColumnFooterBuilder? footBuilder;
|
||||||
|
|
||||||
final OverlapDragTargetDelegate delegate;
|
final OverlapDragTargetDelegate delegate;
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ class _BoardContentState extends State<BoardContent> {
|
|||||||
builder: (context, value, child) {
|
builder: (context, value, child) {
|
||||||
return ConstrainedBox(
|
return ConstrainedBox(
|
||||||
constraints: widget.columnConstraints,
|
constraints: widget.columnConstraints,
|
||||||
child: BoardColumnWidget(
|
child: AFBoardColumnWidget(
|
||||||
margin: _marginFromIndex(columnIndex),
|
margin: _marginFromIndex(columnIndex),
|
||||||
itemMargin: widget.config.columnItemPadding,
|
itemMargin: widget.config.columnItemPadding,
|
||||||
headerBuilder: widget.headerBuilder,
|
headerBuilder: widget.headerBuilder,
|
||||||
@ -246,9 +246,9 @@ class _BoardContentState extends State<BoardContent> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class _BoardColumnDataSourceImpl extends BoardColumnDataDataSource {
|
class _BoardColumnDataSourceImpl extends AFBoardColumnDataDataSource {
|
||||||
String columnId;
|
String columnId;
|
||||||
final BoardDataController dataController;
|
final AFBoardDataController dataController;
|
||||||
|
|
||||||
_BoardColumnDataSourceImpl({
|
_BoardColumnDataSourceImpl({
|
||||||
required this.columnId,
|
required this.columnId,
|
||||||
@ -256,7 +256,7 @@ class _BoardColumnDataSourceImpl extends BoardColumnDataDataSource {
|
|||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
BoardColumnData get columnData =>
|
AFBoardColumnData get columnData =>
|
||||||
dataController.columnController(columnId).columnData;
|
dataController.columnController(columnId).columnData;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -22,23 +22,23 @@ typedef OnColumnDeleted = void Function(String listId, int deletedIndex);
|
|||||||
|
|
||||||
typedef OnColumnInserted = void Function(String listId, int insertedIndex);
|
typedef OnColumnInserted = void Function(String listId, int insertedIndex);
|
||||||
|
|
||||||
typedef BoardColumnCardBuilder = Widget Function(
|
typedef AFBoardColumnCardBuilder = Widget Function(
|
||||||
BuildContext context,
|
BuildContext context,
|
||||||
ColumnItem item,
|
ColumnItem item,
|
||||||
);
|
);
|
||||||
|
|
||||||
typedef BoardColumnHeaderBuilder = Widget Function(
|
typedef AFBoardColumnHeaderBuilder = Widget Function(
|
||||||
BuildContext context,
|
BuildContext context,
|
||||||
BoardColumnData columnData,
|
AFBoardColumnData columnData,
|
||||||
);
|
);
|
||||||
|
|
||||||
typedef BoardColumnFooterBuilder = Widget Function(
|
typedef AFBoardColumnFooterBuilder = Widget Function(
|
||||||
BuildContext context,
|
BuildContext context,
|
||||||
BoardColumnData columnData,
|
AFBoardColumnData columnData,
|
||||||
);
|
);
|
||||||
|
|
||||||
abstract class BoardColumnDataDataSource extends ReoderFlextDataSource {
|
abstract class AFBoardColumnDataDataSource extends ReoderFlextDataSource {
|
||||||
BoardColumnData get columnData;
|
AFBoardColumnData get columnData;
|
||||||
|
|
||||||
List<String> get acceptedColumnIds;
|
List<String> get acceptedColumnIds;
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ abstract class BoardColumnDataDataSource extends ReoderFlextDataSource {
|
|||||||
UnmodifiableListView<ColumnItem> get items => columnData.items;
|
UnmodifiableListView<ColumnItem> get items => columnData.items;
|
||||||
|
|
||||||
void debugPrint() {
|
void debugPrint() {
|
||||||
String msg = '[$BoardColumnDataDataSource] $columnData data: ';
|
String msg = '[$AFBoardColumnDataDataSource] $columnData data: ';
|
||||||
for (var element in items) {
|
for (var element in items) {
|
||||||
msg = '$msg$element,';
|
msg = '$msg$element,';
|
||||||
}
|
}
|
||||||
@ -58,10 +58,10 @@ abstract class BoardColumnDataDataSource extends ReoderFlextDataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// [BoardColumnWidget] represents the column of the Board.
|
/// [AFBoardColumnWidget] represents the column of the Board.
|
||||||
///
|
///
|
||||||
class BoardColumnWidget extends StatefulWidget {
|
class AFBoardColumnWidget extends StatefulWidget {
|
||||||
final BoardColumnDataDataSource dataSource;
|
final AFBoardColumnDataDataSource dataSource;
|
||||||
final ScrollController? scrollController;
|
final ScrollController? scrollController;
|
||||||
final ReorderFlexConfig config;
|
final ReorderFlexConfig config;
|
||||||
|
|
||||||
@ -73,11 +73,11 @@ class BoardColumnWidget extends StatefulWidget {
|
|||||||
|
|
||||||
String get columnId => dataSource.columnData.id;
|
String get columnId => dataSource.columnData.id;
|
||||||
|
|
||||||
final BoardColumnCardBuilder cardBuilder;
|
final AFBoardColumnCardBuilder cardBuilder;
|
||||||
|
|
||||||
final BoardColumnHeaderBuilder? headerBuilder;
|
final AFBoardColumnHeaderBuilder? headerBuilder;
|
||||||
|
|
||||||
final BoardColumnFooterBuilder? footBuilder;
|
final AFBoardColumnFooterBuilder? footBuilder;
|
||||||
|
|
||||||
final EdgeInsets margin;
|
final EdgeInsets margin;
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ class BoardColumnWidget extends StatefulWidget {
|
|||||||
|
|
||||||
final Color backgroundColor;
|
final Color backgroundColor;
|
||||||
|
|
||||||
const BoardColumnWidget({
|
const AFBoardColumnWidget({
|
||||||
Key? key,
|
Key? key,
|
||||||
this.headerBuilder,
|
this.headerBuilder,
|
||||||
this.footBuilder,
|
this.footBuilder,
|
||||||
@ -106,12 +106,12 @@ class BoardColumnWidget extends StatefulWidget {
|
|||||||
super(key: key);
|
super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<BoardColumnWidget> createState() => _BoardColumnWidgetState();
|
State<AFBoardColumnWidget> createState() => _AFBoardColumnWidgetState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _BoardColumnWidgetState extends State<BoardColumnWidget> {
|
class _AFBoardColumnWidgetState extends State<AFBoardColumnWidget> {
|
||||||
final GlobalKey _columnOverlayKey =
|
final GlobalKey _columnOverlayKey =
|
||||||
GlobalKey(debugLabel: '$BoardColumnWidget overlay key');
|
GlobalKey(debugLabel: '$AFBoardColumnWidget overlay key');
|
||||||
|
|
||||||
late BoardOverlayEntry _overlayEntry;
|
late BoardOverlayEntry _overlayEntry;
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ abstract class ColumnItem extends ReoderFlexItem {
|
|||||||
String toString() => id;
|
String toString() => id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// [BoardColumnDataController] is used to handle the [BoardColumnData].
|
/// [BoardColumnDataController] is used to handle the [AFBoardColumnData].
|
||||||
/// * Remove an item by calling [removeAt] method.
|
/// * Remove an item by calling [removeAt] method.
|
||||||
/// * Move item to another position by calling [move] method.
|
/// * Move item to another position by calling [move] method.
|
||||||
/// * Insert item to index by calling [insert] method
|
/// * Insert item to index by calling [insert] method
|
||||||
@ -21,7 +21,7 @@ abstract class ColumnItem extends ReoderFlexItem {
|
|||||||
/// All there operations will notify listeners by default.
|
/// All there operations will notify listeners by default.
|
||||||
///
|
///
|
||||||
class BoardColumnDataController extends ChangeNotifier with EquatableMixin {
|
class BoardColumnDataController extends ChangeNotifier with EquatableMixin {
|
||||||
final BoardColumnData columnData;
|
final AFBoardColumnData columnData;
|
||||||
|
|
||||||
BoardColumnDataController({
|
BoardColumnDataController({
|
||||||
required this.columnData,
|
required this.columnData,
|
||||||
@ -112,15 +112,15 @@ class BoardColumnDataController extends ChangeNotifier with EquatableMixin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// [BoardColumnData] represents the data of each Column of the Board.
|
/// [AFBoardColumnData] represents the data of each Column of the Board.
|
||||||
class BoardColumnData<CustomData> extends ReoderFlexItem with EquatableMixin {
|
class AFBoardColumnData<CustomData> extends ReoderFlexItem with EquatableMixin {
|
||||||
@override
|
@override
|
||||||
final String id;
|
final String id;
|
||||||
final String desc;
|
final String desc;
|
||||||
final List<ColumnItem> _items;
|
final List<ColumnItem> _items;
|
||||||
final CustomData? customData;
|
final CustomData? customData;
|
||||||
|
|
||||||
BoardColumnData({
|
AFBoardColumnData({
|
||||||
this.customData,
|
this.customData,
|
||||||
required this.id,
|
required this.id,
|
||||||
this.desc = "",
|
this.desc = "",
|
||||||
|
@ -23,14 +23,14 @@ typedef OnMoveColumnItemToColumn = void Function(
|
|||||||
int toIndex,
|
int toIndex,
|
||||||
);
|
);
|
||||||
|
|
||||||
class BoardDataController extends ChangeNotifier
|
class AFBoardDataController extends ChangeNotifier
|
||||||
with EquatableMixin, BoardPhantomControllerDelegate, ReoderFlextDataSource {
|
with EquatableMixin, BoardPhantomControllerDelegate, ReoderFlextDataSource {
|
||||||
final List<BoardColumnData> _columnDatas = [];
|
final List<AFBoardColumnData> _columnDatas = [];
|
||||||
final OnMoveColumn? onMoveColumn;
|
final OnMoveColumn? onMoveColumn;
|
||||||
final OnMoveColumnItem? onMoveColumnItem;
|
final OnMoveColumnItem? onMoveColumnItem;
|
||||||
final OnMoveColumnItemToColumn? onMoveColumnItemToColumn;
|
final OnMoveColumnItemToColumn? onMoveColumnItemToColumn;
|
||||||
|
|
||||||
List<BoardColumnData> get columnDatas => _columnDatas;
|
List<AFBoardColumnData> get columnDatas => _columnDatas;
|
||||||
|
|
||||||
List<String> get columnIds =>
|
List<String> get columnIds =>
|
||||||
_columnDatas.map((columnData) => columnData.id).toList();
|
_columnDatas.map((columnData) => columnData.id).toList();
|
||||||
@ -38,13 +38,13 @@ class BoardDataController extends ChangeNotifier
|
|||||||
final LinkedHashMap<String, BoardColumnDataController> _columnControllers =
|
final LinkedHashMap<String, BoardColumnDataController> _columnControllers =
|
||||||
LinkedHashMap();
|
LinkedHashMap();
|
||||||
|
|
||||||
BoardDataController({
|
AFBoardDataController({
|
||||||
this.onMoveColumn,
|
this.onMoveColumn,
|
||||||
this.onMoveColumnItem,
|
this.onMoveColumnItem,
|
||||||
this.onMoveColumnItemToColumn,
|
this.onMoveColumnItemToColumn,
|
||||||
});
|
});
|
||||||
|
|
||||||
void addColumn(BoardColumnData columnData, {bool notify = true}) {
|
void addColumn(AFBoardColumnData columnData, {bool notify = true}) {
|
||||||
if (_columnControllers[columnData.id] != null) return;
|
if (_columnControllers[columnData.id] != null) return;
|
||||||
|
|
||||||
final controller = BoardColumnDataController(columnData: columnData);
|
final controller = BoardColumnDataController(columnData: columnData);
|
||||||
@ -53,7 +53,7 @@ class BoardDataController extends ChangeNotifier
|
|||||||
if (notify) notifyListeners();
|
if (notify) notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
void addColumns(List<BoardColumnData> columns, {bool notify = true}) {
|
void addColumns(List<AFBoardColumnData> columns, {bool notify = true}) {
|
||||||
for (final column in columns) {
|
for (final column in columns) {
|
||||||
addColumn(column, notify: false);
|
addColumn(column, notify: false);
|
||||||
}
|
}
|
||||||
@ -158,7 +158,7 @@ class BoardDataController extends ChangeNotifier
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get identifier => '$BoardDataController';
|
String get identifier => '$AFBoardDataController';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
UnmodifiableListView<ReoderFlexItem> get items =>
|
UnmodifiableListView<ReoderFlexItem> get items =>
|
||||||
@ -175,7 +175,7 @@ class BoardDataController extends ChangeNotifier
|
|||||||
columnController.removeAt(index);
|
columnController.removeAt(index);
|
||||||
|
|
||||||
Log.debug(
|
Log.debug(
|
||||||
'[$BoardDataController] Column:[$columnId] remove phantom, current count: ${columnController.items.length}');
|
'[$AFBoardDataController] Column:[$columnId] remove phantom, current count: ${columnController.items.length}');
|
||||||
}
|
}
|
||||||
return isExist;
|
return isExist;
|
||||||
}
|
}
|
||||||
|
@ -39,6 +39,7 @@ pub struct GridSettingRevision {
|
|||||||
|
|
||||||
pub filters: GridFilters,
|
pub filters: GridFilters,
|
||||||
|
|
||||||
|
#[serde(default)]
|
||||||
pub groups: GridGroups,
|
pub groups: GridGroups,
|
||||||
|
|
||||||
#[serde(skip)]
|
#[serde(skip)]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user