event_map.rs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. use crate::event_handler::*;
  2. use crate::manager::GridManager;
  3. use flowy_derive::{Flowy_Event, ProtoBuf_Enum};
  4. use lib_dispatch::prelude::*;
  5. use std::sync::Arc;
  6. use strum_macros::Display;
  7. pub fn create(grid_manager: Arc<GridManager>) -> Module {
  8. let mut module = Module::new().name(env!("CARGO_PKG_NAME")).data(grid_manager);
  9. module = module
  10. .event(GridEvent::GetGridData, get_grid_data_handler)
  11. .event(GridEvent::GetGridBlocks, get_grid_blocks_handler)
  12. // Field
  13. .event(GridEvent::GetFields, get_fields_handler)
  14. .event(GridEvent::UpdateField, update_field_handler)
  15. .event(GridEvent::InsertField, insert_field_handler)
  16. .event(GridEvent::UpdateFieldTypeOption, update_field_type_option_handler)
  17. .event(GridEvent::DeleteField, delete_field_handler)
  18. .event(GridEvent::SwitchToField, switch_to_field_handler)
  19. .event(GridEvent::DuplicateField, duplicate_field_handler)
  20. .event(GridEvent::MoveItem, move_item_handler)
  21. .event(GridEvent::GetFieldTypeOption, get_field_type_option_data_handler)
  22. .event(GridEvent::CreateFieldTypeOption, create_field_type_option_data_handler)
  23. // Row
  24. .event(GridEvent::CreateRow, create_row_handler)
  25. .event(GridEvent::GetRow, get_row_handler)
  26. .event(GridEvent::DeleteRow, delete_row_handler)
  27. .event(GridEvent::DuplicateRow, duplicate_row_handler)
  28. // Cell
  29. .event(GridEvent::GetCell, get_cell_handler)
  30. .event(GridEvent::UpdateCell, update_cell_handler)
  31. .event(GridEvent::GetDateCellData, get_date_cell_data_handler)
  32. // SelectOption
  33. .event(GridEvent::NewSelectOption, new_select_option_handler)
  34. .event(GridEvent::UpdateSelectOption, update_select_option_handler)
  35. .event(GridEvent::GetSelectOptionCellData, get_select_option_handler)
  36. .event(GridEvent::UpdateSelectOptionCell, update_select_option_cell_handler)
  37. // Date
  38. .event(GridEvent::UpdateDateCell, update_date_cell_handler);
  39. module
  40. }
  41. #[derive(Clone, Copy, PartialEq, Eq, Debug, Display, Hash, ProtoBuf_Enum, Flowy_Event)]
  42. #[event_err = "FlowyError"]
  43. pub enum GridEvent {
  44. #[event(input = "GridId", output = "Grid")]
  45. GetGridData = 0,
  46. #[event(input = "QueryGridBlocksPayload", output = "RepeatedGridBlock")]
  47. GetGridBlocks = 1,
  48. #[event(input = "QueryFieldPayload", output = "RepeatedField")]
  49. GetFields = 10,
  50. #[event(input = "FieldChangesetPayload")]
  51. UpdateField = 11,
  52. #[event(input = "UpdateFieldTypeOptionPayload")]
  53. UpdateFieldTypeOption = 12,
  54. #[event(input = "InsertFieldPayload")]
  55. InsertField = 13,
  56. #[event(input = "FieldIdentifierPayload")]
  57. DeleteField = 14,
  58. #[event(input = "EditFieldPayload", output = "FieldTypeOptionData")]
  59. SwitchToField = 20,
  60. #[event(input = "FieldIdentifierPayload")]
  61. DuplicateField = 21,
  62. #[event(input = "MoveItemPayload")]
  63. MoveItem = 22,
  64. #[event(input = "EditFieldPayload", output = "FieldTypeOptionData")]
  65. GetFieldTypeOption = 23,
  66. #[event(input = "EditFieldPayload", output = "FieldTypeOptionData")]
  67. CreateFieldTypeOption = 24,
  68. #[event(input = "CreateSelectOptionPayload", output = "SelectOption")]
  69. NewSelectOption = 30,
  70. #[event(input = "CellIdentifierPayload", output = "SelectOptionCellData")]
  71. GetSelectOptionCellData = 31,
  72. #[event(input = "SelectOptionChangesetPayload")]
  73. UpdateSelectOption = 32,
  74. #[event(input = "CreateRowPayload", output = "Row")]
  75. CreateRow = 50,
  76. #[event(input = "RowIdentifierPayload", output = "Row")]
  77. GetRow = 51,
  78. #[event(input = "RowIdentifierPayload")]
  79. DeleteRow = 52,
  80. #[event(input = "RowIdentifierPayload")]
  81. DuplicateRow = 53,
  82. #[event(input = "CellIdentifierPayload", output = "Cell")]
  83. GetCell = 70,
  84. #[event(input = "CellChangeset")]
  85. UpdateCell = 71,
  86. #[event(input = "SelectOptionCellChangesetPayload")]
  87. UpdateSelectOptionCell = 72,
  88. #[event(input = "DateChangesetPayload")]
  89. UpdateDateCell = 80,
  90. #[event(input = "CellIdentifierPayload", output = "DateCellData")]
  91. GetDateCellData = 90,
  92. }