diff options
Diffstat (limited to 'src/main/java/design/controller/userinput/menus/UserSettings.java')
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/UserSettings.java | 58 |
1 files changed, 34 insertions, 24 deletions
diff --git a/src/main/java/design/controller/userinput/menus/UserSettings.java b/src/main/java/design/controller/userinput/menus/UserSettings.java index 47b0a5b..1b2082d 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(); @@ -25,6 +27,8 @@ public class UserSettings extends Menu { @Override public List<MenuOption> getMenuOptions() { + boolean guest = Session.isGuest(); + var opts = new ArrayList<MenuOption>(); opts.add(new MenuOption("return to main menu", () -> new MainMenu().present())); @@ -34,31 +38,37 @@ public class UserSettings extends Menu { new SelectUser(doAfter).present(); })); - opts.add(new MenuOption("set password...", () -> { - 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(); - })); + if (!guest) { + opts.add(new MenuOption("set password...", () -> { + UndoManager.instance().capture(golfer, "Change password for @" + golfer.getUsername()); - opts.add(new MenuOption("set full name...", () -> { - 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(); - })); + 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; } |
