summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller/userinput/UndoActions.java
diff options
context:
space:
mode:
authorMichael Lizzio <mjl2396@rit.edu>2025-11-10 16:09:57 -0500
committerMichael Lizzio <mjl2396@rit.edu>2025-11-10 16:09:57 -0500
commitb58b98704f6b2d2b4a5938f5a8b87eda268ad88b (patch)
tree48f452e6dcb72b2d603af0e34ebcd6a83c44dcf4 /src/main/java/design/controller/userinput/UndoActions.java
parent4e45988ddff84205d2c5c81466ae86f57b25de17 (diff)
downloaddesignproject-design-6-b58b98704f6b2d2b4a5938f5a8b87eda268ad88b.tar.gz
designproject-design-6-b58b98704f6b2d2b4a5938f5a8b87eda268ad88b.tar.bz2
designproject-design-6-b58b98704f6b2d2b4a5938f5a8b87eda268ad88b.zip
Fixed not updateing database on undo/redo
Diffstat (limited to 'src/main/java/design/controller/userinput/UndoActions.java')
-rw-r--r--src/main/java/design/controller/userinput/UndoActions.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/main/java/design/controller/userinput/UndoActions.java b/src/main/java/design/controller/userinput/UndoActions.java
new file mode 100644
index 0000000..6417284
--- /dev/null
+++ b/src/main/java/design/controller/userinput/UndoActions.java
@@ -0,0 +1,51 @@
+package design.controller.userinput;
+
+import design.model.undo.UndoManager;
+import design.persistence.PersonalDatabase;
+import design.runtime.Session;
+import java.io.IOException;
+
+public final class UndoActions {
+
+ private UndoActions() {
+ }
+
+ public static void undoWithSave() {
+ UndoManager um = UndoManager.instance();
+ if (!um.canUndo()) {
+ System.out.println("Nothing to undo.");
+ return;
+ }
+
+ String label = um.peekUndoLabel();
+ um.undo();
+ System.out.println("Undo: " + label);
+
+ saveCurrentGolfer();
+ }
+
+ public static void redoWithSave() {
+ UndoManager um = UndoManager.instance();
+ if (!um.canRedo()) {
+ System.out.println("Nothing to redo.");
+ return;
+ }
+
+ String label = um.peekRedoLabel();
+ um.redo();
+ System.out.println("Redo: " + label);
+
+ saveCurrentGolfer();
+ }
+
+ private static void saveCurrentGolfer() {
+ try {
+ var g = Session.getCurrentGolfer();
+ if (g != null) {
+ PersonalDatabase.instance().updateGolfer(g);
+ }
+ } catch (IOException e) {
+ System.err.println("Failed to save after undo/redo: " + e.getMessage());
+ }
+ }
+}