From 4e45988ddff84205d2c5c81466ae86f57b25de17 Mon Sep 17 00:00:00 2001 From: Michael Lizzio Date: Mon, 10 Nov 2025 15:13:27 -0500 Subject: Used UndoManager in Menus to Capture Sanpshots --- src/main/java/design/controller/userinput/menus/UserSettings.java | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/main/java/design/controller/userinput/menus/UserSettings.java') diff --git a/src/main/java/design/controller/userinput/menus/UserSettings.java b/src/main/java/design/controller/userinput/menus/UserSettings.java index 47b0a5b..36d8d70 100644 --- a/src/main/java/design/controller/userinput/menus/UserSettings.java +++ b/src/main/java/design/controller/userinput/menus/UserSettings.java @@ -12,6 +12,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Scanner; +import design.model.undo.UndoManager; + public class UserSettings extends Menu { private final Golfer golfer = Session.getCurrentGolfer(); @@ -35,6 +37,8 @@ public class UserSettings extends Menu { })); opts.add(new MenuOption("set password...", () -> { + UndoManager.instance().capture(golfer, "Change password for @" + golfer.getUsername()); + System.out.print("Enter password: "); var password = scanner.nextLine(); @@ -48,6 +52,8 @@ public class UserSettings extends Menu { })); opts.add(new MenuOption("set full name...", () -> { + UndoManager.instance().capture(golfer, "Change full name for @" + golfer.getUsername()); + System.out.print("Enter full name: "); var fullName = scanner.nextLine(); -- cgit v1.2.3 From e334e4f87f8826bd3827e3dbd2179de30b42d828 Mon Sep 17 00:00:00 2001 From: Michael Lizzio Date: Tue, 11 Nov 2025 08:48:56 -0500 Subject: Added isGuest to Session and updated menus --- .../controller/userinput/menus/UserSettings.java | 62 ++++++++++++---------- 1 file changed, 33 insertions(+), 29 deletions(-) (limited to 'src/main/java/design/controller/userinput/menus/UserSettings.java') diff --git a/src/main/java/design/controller/userinput/menus/UserSettings.java b/src/main/java/design/controller/userinput/menus/UserSettings.java index 36d8d70..1b2082d 100644 --- a/src/main/java/design/controller/userinput/menus/UserSettings.java +++ b/src/main/java/design/controller/userinput/menus/UserSettings.java @@ -27,6 +27,8 @@ public class UserSettings extends Menu { @Override public List getMenuOptions() { + boolean guest = Session.isGuest(); + var opts = new ArrayList(); opts.add(new MenuOption("return to main menu", () -> new MainMenu().present())); @@ -36,35 +38,37 @@ public class UserSettings extends Menu { new SelectUser(doAfter).present(); })); - opts.add(new MenuOption("set password...", () -> { - UndoManager.instance().capture(golfer, "Change password for @" + golfer.getUsername()); - - System.out.print("Enter password: "); - var password = scanner.nextLine(); - - golfer.setPassword(password); - try { - personalDatabase.updateGolfer(golfer); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - this.present(); - })); - - opts.add(new MenuOption("set full name...", () -> { - UndoManager.instance().capture(golfer, "Change full name for @" + golfer.getUsername()); - - System.out.print("Enter full name: "); - var fullName = scanner.nextLine(); - - golfer.setFullName(fullName); - try { - personalDatabase.updateGolfer(golfer); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - this.present(); - })); + if (!guest) { + opts.add(new MenuOption("set password...", () -> { + UndoManager.instance().capture(golfer, "Change password for @" + golfer.getUsername()); + + System.out.print("Enter password: "); + var password = scanner.nextLine(); + + golfer.setPassword(password); + try { + personalDatabase.updateGolfer(golfer); + } catch (IOException ex) { + throw new RuntimeException(ex); + } + this.present(); + })); + + opts.add(new MenuOption("set full name...", () -> { + UndoManager.instance().capture(golfer, "Change full name for @" + golfer.getUsername()); + + System.out.print("Enter full name: "); + var fullName = scanner.nextLine(); + + golfer.setFullName(fullName); + try { + personalDatabase.updateGolfer(golfer); + } catch (IOException ex) { + throw new RuntimeException(ex); + } + this.present(); + })); + } return opts; } -- cgit v1.2.3