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 | 55 |
1 files changed, 49 insertions, 6 deletions
diff --git a/src/main/java/design/controller/userinput/menus/UserSettings.java b/src/main/java/design/controller/userinput/menus/UserSettings.java index a866889..34b645d 100644 --- a/src/main/java/design/controller/userinput/menus/UserSettings.java +++ b/src/main/java/design/controller/userinput/menus/UserSettings.java @@ -1,12 +1,23 @@ package design.controller.userinput.menus; +import design.controller.userinput.Action; import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; +import design.model.Golfer; +import design.persistence.PersonalDatabase; +import design.runtime.Session; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; +import java.util.Scanner; public class UserSettings extends Menu { + private final Golfer golfer = Session.getCurrentGolfer(); + private final PersonalDatabase personalDatabase = PersonalDatabase.INSTANCE; + private final Scanner scanner = new Scanner(System.in); + @Override public String getTitle() { return "user settings"; @@ -14,11 +25,43 @@ public class UserSettings extends Menu { @Override public List<MenuOption> getMenuOptions() { - return List.of( - new MenuOption("return to main menu", (a) -> new MainMenu().present()), - new MenuOption("switch user...", (a) -> new SelectUser().present()), - new MenuOption("set username...", (a -> {})), - new MenuOption("set password...", (a) -> {}) - ); + var opts = new ArrayList<MenuOption>(); + + opts.add(new MenuOption("return to main menu", () -> new MainMenu().present())); + + opts.add(new MenuOption("switch user...", () -> { + Action doAfter = this::present; + 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(); + })); + + 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(); + })); + + opts.add(new MenuOption("add a club...", () -> new AddClubMenu().present())); + + return opts; } } |
