summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller/userinput/UndoActions.java
diff options
context:
space:
mode:
authorMichael Lizzio <142752852+Michael-Lizzio@users.noreply.github.com>2025-11-11 08:17:00 -0500
committerGitHub <noreply@github.com>2025-11-11 08:17:00 -0500
commitf438bcc00e442ec18f6a0bc8715398b981b1b189 (patch)
treedf3e18485e9a4781236f3b6c5dd8fd79ecc564e3 /src/main/java/design/controller/userinput/UndoActions.java
parent868e0b1e55763f2de686332b0887398839e1fe73 (diff)
parentb58b98704f6b2d2b4a5938f5a8b87eda268ad88b (diff)
downloaddesignproject-design-6-f438bcc00e442ec18f6a0bc8715398b981b1b189.tar.gz
designproject-design-6-f438bcc00e442ec18f6a0bc8715398b981b1b189.tar.bz2
designproject-design-6-f438bcc00e442ec18f6a0bc8715398b981b1b189.zip
Merge pull request #15 from RIT-SWEN-262/lizzio-UndoRedoSubsystem
Lizzio undo redo subsystem
Diffstat (limited to '')
-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());
+ }
+ }
+}