diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-11-16 02:01:58 -0500 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-11-16 02:01:58 -0500 |
| commit | 969b8071dd799dfaed939e10bf77b8a1ad42f9dc (patch) | |
| tree | 214016dc742a155512fbb2f851cf589509f3b361 /src/main/java/design/controller/userinput/UndoActions.java | |
| parent | cf59d52cba70742f1d4098c38b4c7a798b3d89fa (diff) | |
| parent | 43530df067b1132b944e9619bdf60b72264829ec (diff) | |
| download | designproject-design-6-969b8071dd799dfaed939e10bf77b8a1ad42f9dc.tar.gz designproject-design-6-969b8071dd799dfaed939e10bf77b8a1ad42f9dc.tar.bz2 designproject-design-6-969b8071dd799dfaed939e10bf77b8a1ad42f9dc.zip | |
Merge branch 'main' into import-exportimport-export
# Conflicts:
# data/personaldb.json
# src/main/java/design/controller/userinput/menus/MainMenu.java
# src/main/java/design/persistence/JSONLeagueDatabase.java
# src/main/java/design/persistence/JSONPersonalDatabase.java
# src/test/java/design/model/ClubTest.java
# src/test/java/design/model/GolferTest.java
Diffstat (limited to '')
| -rw-r--r-- | src/main/java/design/controller/userinput/UndoActions.java | 51 |
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()); + } + } +} |
