board_data_controller.dart 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. // import 'dart:collection';
  2. // import 'package:flowy_sdk/log.dart';
  3. // import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
  4. // import 'package:flowy_sdk/protobuf/flowy-folder/view.pb.dart';
  5. // import 'package:flowy_sdk/protobuf/flowy-grid/block_entities.pb.dart';
  6. // import 'package:flowy_sdk/protobuf/flowy-grid/field_entities.pb.dart';
  7. // import 'package:flowy_sdk/protobuf/flowy-grid/grid_entities.pb.dart';
  8. // import 'dart:async';
  9. // import 'package:dartz/dartz.dart';
  10. // typedef OnFieldsChanged = void Function(UnmodifiableListView<FieldPB>);
  11. // typedef OnGridChanged = void Function(GridPB);
  12. // class ridDataController {
  13. // final String gridId;
  14. // final GridService _gridFFIService;
  15. // final GridFieldCache fieldCache;
  16. // // key: the block id
  17. // final LinkedHashMap<String, GridBlockCache> _blocks;
  18. // UnmodifiableMapView<String, GridBlockCache> get blocks =>
  19. // UnmodifiableMapView(_blocks);
  20. // OnRowsChanged? _onRowChanged;
  21. // OnFieldsChanged? _onFieldsChanged;
  22. // OnGridChanged? _onGridChanged;
  23. // List<GridRowInfo> get rowInfos {
  24. // final List<GridRowInfo> rows = [];
  25. // for (var block in _blocks.values) {
  26. // rows.addAll(block.rows);
  27. // }
  28. // return rows;
  29. // }
  30. // GridDataController({required ViewPB view})
  31. // : gridId = view.id,
  32. // _blocks = LinkedHashMap.identity(),
  33. // _gridFFIService = GridService(gridId: view.id),
  34. // fieldCache = GridFieldCache(gridId: view.id);
  35. // void addListener({
  36. // required OnGridChanged onGridChanged,
  37. // required OnRowsChanged onRowsChanged,
  38. // required OnFieldsChanged onFieldsChanged,
  39. // }) {
  40. // _onGridChanged = onGridChanged;
  41. // _onRowChanged = onRowsChanged;
  42. // _onFieldsChanged = onFieldsChanged;
  43. // fieldCache.addListener(onFields: (fields) {
  44. // _onFieldsChanged?.call(UnmodifiableListView(fields));
  45. // });
  46. // }
  47. // Future<Either<Unit, FlowyError>> loadData() async {
  48. // final result = await _gridFFIService.loadGrid();
  49. // return Future(
  50. // () => result.fold(
  51. // (grid) async {
  52. // _initialBlocks(grid.blocks);
  53. // _onGridChanged?.call(grid);
  54. // return await _loadFields(grid);
  55. // },
  56. // (err) => right(err),
  57. // ),
  58. // );
  59. // }
  60. // void createRow() {
  61. // _gridFFIService.createRow();
  62. // }
  63. // Future<void> dispose() async {
  64. // await _gridFFIService.closeGrid();
  65. // await fieldCache.dispose();
  66. // for (final blockCache in _blocks.values) {
  67. // blockCache.dispose();
  68. // }
  69. // }
  70. // void _initialBlocks(List<BlockPB> blocks) {
  71. // for (final block in blocks) {
  72. // if (_blocks[block.id] != null) {
  73. // Log.warn("Initial duplicate block's cache: ${block.id}");
  74. // return;
  75. // }
  76. // final cache = GridBlockCache(
  77. // gridId: gridId,
  78. // block: block,
  79. // fieldCache: fieldCache,
  80. // );
  81. // cache.addListener(
  82. // onChangeReason: (reason) {
  83. // _onRowChanged?.call(rowInfos, reason);
  84. // },
  85. // );
  86. // _blocks[block.id] = cache;
  87. // }
  88. // }
  89. // Future<Either<Unit, FlowyError>> _loadFields(GridPB grid) async {
  90. // final result = await _gridFFIService.getFields(fieldIds: grid.fields);
  91. // return Future(
  92. // () => result.fold(
  93. // (fields) {
  94. // fieldCache.fields = fields.items;
  95. // _onFieldsChanged?.call(UnmodifiableListView(fieldCache.fields));
  96. // return left(unit);
  97. // },
  98. // (err) => right(err),
  99. // ),
  100. // );
  101. // }
  102. // }