text_document_formatting/
document_formatting_controller.rs1use crate::MergeTextFormatDto;
4use crate::SetBlockFormatDto;
5use crate::SetFrameFormatDto;
6use crate::SetListFormatDto;
7use crate::SetTableCellFormatDto;
8use crate::SetTableFormatDto;
9use crate::SetTextFormatDto;
10use crate::units_of_work::merge_text_format_uow::MergeTextFormatUnitOfWorkFactory;
11use crate::units_of_work::set_block_format_uow::SetBlockFormatUnitOfWorkFactory;
12use crate::units_of_work::set_frame_format_uow::SetFrameFormatUnitOfWorkFactory;
13use crate::units_of_work::set_list_format_uow::SetListFormatUnitOfWorkFactory;
14use crate::units_of_work::set_table_cell_format_uow::SetTableCellFormatUnitOfWorkFactory;
15use crate::units_of_work::set_table_format_uow::SetTableFormatUnitOfWorkFactory;
16use crate::units_of_work::set_text_format_uow::SetTextFormatUnitOfWorkFactory;
17use crate::use_cases::merge_text_format_uc::MergeTextFormatUseCase;
18use crate::use_cases::set_block_format_uc::SetBlockFormatUseCase;
19use crate::use_cases::set_frame_format_uc::SetFrameFormatUseCase;
20use crate::use_cases::set_list_format_uc::SetListFormatUseCase;
21use crate::use_cases::set_table_cell_format_uc::SetTableCellFormatUseCase;
22use crate::use_cases::set_table_format_uc::SetTableFormatUseCase;
23use crate::use_cases::set_text_format_uc::SetTextFormatUseCase;
24use anyhow::Result;
25use common::event::{Event, Origin};
26
27use common::event::DocumentFormattingEvent::MergeTextFormat;
28use common::event::DocumentFormattingEvent::SetBlockFormat;
29use common::event::DocumentFormattingEvent::SetFrameFormat;
30use common::event::DocumentFormattingEvent::SetListFormat;
31use common::event::DocumentFormattingEvent::SetTableCellFormat;
32use common::event::DocumentFormattingEvent::SetTableFormat;
33use common::event::DocumentFormattingEvent::SetTextFormat;
34
35use common::undo_redo::UndoRedoManager;
36use common::{database::db_context::DbContext, event::EventHub};
37use std::sync::Arc;
38
39pub fn set_text_format(
40 db_context: &DbContext,
41 event_hub: &Arc<EventHub>,
42 undo_redo_manager: &mut UndoRedoManager,
43 stack_id: Option<u64>,
44 dto: &SetTextFormatDto,
45) -> Result<()> {
46 let uow_context = SetTextFormatUnitOfWorkFactory::new(db_context, event_hub);
47 let mut uc = SetTextFormatUseCase::new(Box::new(uow_context));
48 uc.execute(dto)?;
49 undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
50 event_hub.send_event(Event {
52 origin: Origin::DocumentFormatting(SetTextFormat),
53 ids: vec![],
54 data: None,
55 });
56 Ok(())
57}
58
59pub fn merge_text_format(
60 db_context: &DbContext,
61 event_hub: &Arc<EventHub>,
62 undo_redo_manager: &mut UndoRedoManager,
63 stack_id: Option<u64>,
64 dto: &MergeTextFormatDto,
65) -> Result<()> {
66 let uow_context = MergeTextFormatUnitOfWorkFactory::new(db_context, event_hub);
67 let mut uc = MergeTextFormatUseCase::new(Box::new(uow_context));
68 uc.execute(dto)?;
69 undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
70 event_hub.send_event(Event {
72 origin: Origin::DocumentFormatting(MergeTextFormat),
73 ids: vec![],
74 data: None,
75 });
76 Ok(())
77}
78
79pub fn set_block_format(
80 db_context: &DbContext,
81 event_hub: &Arc<EventHub>,
82 undo_redo_manager: &mut UndoRedoManager,
83 stack_id: Option<u64>,
84 dto: &SetBlockFormatDto,
85) -> Result<()> {
86 let uow_context = SetBlockFormatUnitOfWorkFactory::new(db_context, event_hub);
87 let mut uc = SetBlockFormatUseCase::new(Box::new(uow_context));
88 uc.execute(dto)?;
89 undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
90 event_hub.send_event(Event {
92 origin: Origin::DocumentFormatting(SetBlockFormat),
93 ids: vec![],
94 data: None,
95 });
96 Ok(())
97}
98
99pub fn set_frame_format(
100 db_context: &DbContext,
101 event_hub: &Arc<EventHub>,
102 undo_redo_manager: &mut UndoRedoManager,
103 stack_id: Option<u64>,
104 dto: &SetFrameFormatDto,
105) -> Result<()> {
106 let uow_context = SetFrameFormatUnitOfWorkFactory::new(db_context, event_hub);
107 let mut uc = SetFrameFormatUseCase::new(Box::new(uow_context));
108 uc.execute(dto)?;
109 undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
110 event_hub.send_event(Event {
112 origin: Origin::DocumentFormatting(SetFrameFormat),
113 ids: vec![],
114 data: None,
115 });
116 Ok(())
117}
118
119pub fn set_table_format(
120 db_context: &DbContext,
121 event_hub: &Arc<EventHub>,
122 undo_redo_manager: &mut UndoRedoManager,
123 stack_id: Option<u64>,
124 dto: &SetTableFormatDto,
125) -> Result<()> {
126 let uow_context = SetTableFormatUnitOfWorkFactory::new(db_context, event_hub);
127 let mut uc = SetTableFormatUseCase::new(Box::new(uow_context));
128 uc.execute(dto)?;
129 undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
130 event_hub.send_event(Event {
132 origin: Origin::DocumentFormatting(SetTableFormat),
133 ids: vec![],
134 data: None,
135 });
136 Ok(())
137}
138
139pub fn set_table_cell_format(
140 db_context: &DbContext,
141 event_hub: &Arc<EventHub>,
142 undo_redo_manager: &mut UndoRedoManager,
143 stack_id: Option<u64>,
144 dto: &SetTableCellFormatDto,
145) -> Result<()> {
146 let uow_context = SetTableCellFormatUnitOfWorkFactory::new(db_context, event_hub);
147 let mut uc = SetTableCellFormatUseCase::new(Box::new(uow_context));
148 uc.execute(dto)?;
149 undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
150 event_hub.send_event(Event {
152 origin: Origin::DocumentFormatting(SetTableCellFormat),
153 ids: vec![],
154 data: None,
155 });
156 Ok(())
157}
158
159pub fn set_list_format(
160 db_context: &DbContext,
161 event_hub: &Arc<EventHub>,
162 undo_redo_manager: &mut UndoRedoManager,
163 stack_id: Option<u64>,
164 dto: &SetListFormatDto,
165) -> Result<()> {
166 let uow_context = SetListFormatUnitOfWorkFactory::new(db_context, event_hub);
167 let mut uc = SetListFormatUseCase::new(Box::new(uow_context));
168 uc.execute(dto)?;
169 undo_redo_manager.add_command_to_stack(Box::new(uc), stack_id)?;
170 event_hub.send_event(Event {
171 origin: Origin::DocumentFormatting(SetListFormat),
172 ids: vec![],
173 data: None,
174 });
175 Ok(())
176}