File: /Users/shatabdi/Education/GitHub/se450_project/src/model/commands/CommandHistory.java
1
2 package model.commands;
3
4 import java.util.Stack;
5
6 import controller.interfaces.IUndoable;
7 import model.others.TrackShape;
8
9 public class CommandHistory {
10 private static final Stack<IUndoable> redoStack = new Stack<>();
11 public static TrackShape shapeCollection = new TrackShape();
12
13 public static TrackShape shapesDeleted = new TrackShape();
14
15 public static TrackShape shapesGrouped = new TrackShape();
16
17 public static TrackShape shapesInClipboard = new TrackShape();
18
19 public static TrackShape shapesSelected = new TrackShape();
20
21 private static final Stack<IUndoable> undoStack = new Stack<>();
22
23 public static void add(IUndoable cmd) {
24 undoStack.push(cmd);
25 redoStack.clear();
26 }
27 public static Stack<IUndoable> getRedoStack() {
28 return redoStack;
29 }
30 public static Stack<IUndoable> getUndoStack() {
31 return undoStack;
32 }
33 public static boolean redo() {
34 boolean result = !redoStack.empty();
35 if (result) {
36 IUndoable c = redoStack.pop();
37 undoStack.push(c);
38 c.redo();
39 }
40 return result;
41 }
42 public static boolean undo() {
43 boolean result = !undoStack.empty();
44 if (result) {
45 IUndoable c = undoStack.pop();
46 redoStack.push(c);
47 c.undo();
48 }
49 return result;
50 }
51 }
52