OSDN Git Service

[denncoCreator] implemented rename receptor functionality.
[dennco/denncoCreator.git] / Source / command / dceditcommands.h
1 //  Copyright (c) 2012 Dennco Project
2 //
3 // This program is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
7 //
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
16 //
17 //  Created by tkawata on Sep-30, 2012.
18 //
19 #ifndef DCEDITCOMMANDS_H
20 #define DCEDITCOMMANDS_H
21
22 #include "dccommand.h"
23
24 class DCCell;
25 class DCCellCode;
26 class DCContainer;
27 class DCAxon;
28 class DCReceptor;
29 class DCAxonTerminal;
30 class DCVCPage;
31
32 class DCStartAddAxonTerminalCommandFromAxon : public DCCommand
33 {
34     DCCell  *d_ownerCell;
35
36 public:
37     DCStartAddAxonTerminalCommandFromAxon(const void *requester, DCCreator *creator, DCCell *ownerCell);
38     virtual ~DCStartAddAxonTerminalCommandFromAxon() {}
39     void undo();
40     void redo();
41 };
42
43
44 class DCStartAddAxonTerminalCommandFromReceptor : public DCCommand
45 {
46     DCCell  *d_ownerCell;
47     QString d_receptorName;
48
49 public:
50     DCStartAddAxonTerminalCommandFromReceptor(const void *requester, DCCreator *creator, DCCell *ownerCell, const QString &receptorName);
51     virtual ~DCStartAddAxonTerminalCommandFromReceptor() {}
52     void undo();
53     void redo();
54 };
55
56
57 //------------------------------------------
58
59 class DCCommitAddAxonTerminalCommand : public DCCommand
60 {
61     DCCell          *d_axonCell;
62     DCCell          *d_receptorCell;
63     DCReceptor      *d_receptor;
64     QString         d_receptorName;
65     bool            d_isAdded;
66
67 public:
68     DCCommitAddAxonTerminalCommand(const void *requester, DCCreator *creator, DCAxon *axon, DCCell *receptorCell, const QString &receptorName);
69     DCCommitAddAxonTerminalCommand(const void *requester, DCCreator *creator, DCCell *axonCell, DCReceptor *receptor);
70     virtual ~DCCommitAddAxonTerminalCommand() {}
71     void undo();
72     void redo();
73 };
74
75 //------------------------------------------
76
77 class DCRemoveAxonTerminalCommand : public DCCommand
78 {
79     DCCell          *d_cell;
80     DCAxonTerminal  *d_axonTerminal;
81     QString         d_receptorName;
82     bool            d_isDeleted;
83 public:
84     DCRemoveAxonTerminalCommand(const void *requester, DCCreator *creator, DCCell *axonCell, DCAxonTerminal *terminal);
85     DCRemoveAxonTerminalCommand(const void *requester, DCCreator *creator, DCCell *receptorCell, const QString& receptorName);
86     virtual ~DCRemoveAxonTerminalCommand() {}
87     void undo();
88     void redo();
89 };
90
91 //------------------------------------------
92
93 class DCStartCellCodeEditCommand : public DCCommand
94 {
95     DCCell          *d_cell;
96 public:
97     DCStartCellCodeEditCommand(const void *requester, DCCreator *creator, DCCell *ownerCell);
98     virtual ~DCStartCellCodeEditCommand() {}
99     void undo();
100     void redo();
101 };
102
103 //------------------------------------------
104
105 class DCFinishCellCodeEditCommand : public DCCommand
106 {
107 public:
108     DCFinishCellCodeEditCommand(const void *requester, DCCreator *creator);
109     virtual ~DCFinishCellCodeEditCommand() {}
110     void undo();
111     void redo();
112 };
113
114 //------------------------------------------
115
116 class DCAssignCellCodeClassToCellCommand : public DCCommand
117 {
118     DCCell      *d_cell;
119     DCCellCode  *d_cellCode;
120     DCCellCode  *d_prevClass;
121 public:
122     DCAssignCellCodeClassToCellCommand(const void *requester, DCCreator *creator, DCCell *cell, DCCellCode *cellCode);
123     virtual ~DCAssignCellCodeClassToCellCommand() {}
124     void undo();
125     void redo();
126 };
127
128 //------------------------------------------
129
130 class DCUnassignCellCodeClassFromCellCommand : public DCCommand
131 {
132     DCCell      *d_cell;
133     DCCellCode  *d_prevClass;
134 public:
135     DCUnassignCellCodeClassFromCellCommand(const void *requester, DCCreator *creator, DCCell *cell);
136     virtual ~DCUnassignCellCodeClassFromCellCommand() {}
137     void undo();
138     void redo();
139 };
140
141 //------------------------------------------
142
143 class DCAddCellCodeClassCommand : public DCCommand
144 {
145     DCContainer *d_container;
146     QString     d_name;
147     QString     d_type;
148
149 public:
150     DCAddCellCodeClassCommand(const void *requester, DCCreator *creator, DCContainer *container, const QString& name, const QString &type);
151     virtual ~DCAddCellCodeClassCommand() {}
152     void undo();
153     void redo();
154 };
155
156 //------------------------------------------
157
158 class DCMoveCellCodeClassCommand : public DCCommand
159 {
160     QString     d_name;
161     QString     d_type;
162
163 public:
164     DCMoveCellCodeClassCommand(const void *requester, DCCreator *creator, const QString& name, const QString &type);
165     virtual ~DCMoveCellCodeClassCommand();
166     void undo();
167     void redo();
168 };
169
170 //------------------------------------------
171
172 class DCRemoveCellCodeClassCommand : public DCCommand
173 {
174     DCContainer         *d_container;
175     QList<DCCellCode*>  d_cellCodes;
176     QString             d_type;
177
178 public:
179     DCRemoveCellCodeClassCommand(const void *requester, DCCreator *creator, DCContainer *container, DCCellCode* cellCode);
180     DCRemoveCellCodeClassCommand(const void *requester, DCCreator *creator, DCContainer *container, const QList<DCCellCode*> &cellcodes);
181     virtual ~DCRemoveCellCodeClassCommand();
182     void undo();
183     void redo();
184 };
185
186 //------------------------------------------
187
188 class DCAddCellCommand : public DCCommand
189 {
190     DCContainer *d_container;
191     QString     d_path;
192     QString     d_name;
193     QString     d_type;
194
195 public:
196     DCAddCellCommand(const void *requester, DCCreator *creator, DCContainer *container, const QString& path, const QString& name, const QString &type);
197     virtual ~DCAddCellCommand() {}
198     void undo();
199     void redo();
200 };
201
202 //------------------------------------------
203
204 class DCRenameCellCommand : public DCCommand
205 {
206     DCCell      *d_cell;
207     QString     d_name;
208
209 public:
210     DCRenameCellCommand(const void *requester, DCCreator *creator, DCCell *cell, const QString& newName);
211     virtual ~DCRenameCellCommand();
212     void undo();
213     void redo();
214 };
215
216 //------------------------------------------
217
218 class DCMoveCellCommand : public DCCommand
219 {
220     DCCell      *d_cell;
221     DCVCPage    *d_page;
222
223 public:
224     DCMoveCellCommand(const void *requester, DCCreator *creator, DCCell *cell, DCVCPage *newPage);
225     virtual ~DCMoveCellCommand();
226     void undo();
227     void redo();
228 };
229
230 //------------------------------------------
231
232 class DCRemoveCellCommand : public DCCommand
233 {
234     DCContainer     *d_container;
235     QList<DCCell*>  d_cells;
236
237 public:
238     DCRemoveCellCommand(const void *requester, DCCreator *creator, DCContainer *container, DCCell *cell);
239     DCRemoveCellCommand(const void *requester, DCCreator *creator, DCContainer *container, const QList<DCCell*> &cells);
240     virtual ~DCRemoveCellCommand();
241     void undo();
242     void redo();
243 };
244
245 //------------------------------------------
246
247 class DCAddPageCommand : public DCCommand
248 {
249     QString     d_path;
250     DCVCPage    *d_page;
251 public:
252     DCAddPageCommand(const void *requester, DCCreator *creator, const QString& containerBasedPathName);
253     virtual ~DCAddPageCommand() {}
254     void undo();
255     void redo();
256 };
257
258 //------------------------------------------
259
260 class DCMovePageCommand : public DCCommand
261 {
262     QString     d_oldPath;
263     QString     d_newPath;
264
265 public:
266     DCMovePageCommand(const void *requester, DCCreator *creator, const QString& oldContainerBasedPathName, const QString& newContainerBasedPathName);
267     virtual ~DCMovePageCommand();
268     void undo();
269     void redo();
270 };
271
272 //------------------------------------------
273
274 class DCRemovePageCommand : public DCCommand
275 {
276     DCVCPage    *d_page;
277     QUndoStack  d_undoStack;
278
279 public:
280     DCRemovePageCommand(const void *requester, DCCreator *creator, DCVCPage *page);
281     virtual ~DCRemovePageCommand();
282     void undo();
283     void redo();
284 };
285
286 //------------------------------------------
287
288 class DCAddDirectoryCommand : public DCCommand
289 {
290     QString d_path;
291 public:
292     DCAddDirectoryCommand(const void *requester, DCCreator *creator, const QString& sysFilePath);
293     virtual ~DCAddDirectoryCommand() {}
294     void undo();
295     void redo();
296 };
297
298 //------------------------------------------
299
300 class DCRenameDirectoryCommand : public DCCommand
301 {
302     QString d_oldPath;
303     QString d_newPath;
304
305 public:
306     DCRenameDirectoryCommand(const void *requester, DCCreator *creator, const QString& sysOldDirPath, const QString& sysNewDirPath);
307     virtual ~DCRenameDirectoryCommand() {}
308     void undo();
309     void redo();
310
311     bool moveComponentsToDirectory(const QString& orgDirectory, const QString& destDirectory);
312 };
313
314 //------------------------------------------
315
316 class DCRemoveDirectoryCommand : public DCCommand
317 {
318     QString d_path;
319 public:
320     DCRemoveDirectoryCommand(const void *requester, DCCreator *creator, const QString& sysFilePath);
321     virtual ~DCRemoveDirectoryCommand() {}
322     void undo();
323     void redo();
324 };
325
326 //------------------------------------------
327
328 class DCRenameReceptorNameCommand : public DCCommand
329 {
330     DCCell* d_cell;
331     QString d_oldName;
332     QString d_newName;
333
334 public:
335     DCRenameReceptorNameCommand(const void *requester, DCCreator *creator, DCCell *cell, const QString& oldName, const QString& newName);
336     virtual ~DCRenameReceptorNameCommand() {}
337     void undo();
338     void redo();
339 };
340
341 #endif // DCEDITCOMMANDS_H