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, 46 insertions, 9 deletions
diff --git a/src/main/java/design/controller/userinput/menus/UserSettings.java b/src/main/java/design/controller/userinput/menus/UserSettings.java index ab260da..04ec4d0 100644 --- a/src/main/java/design/controller/userinput/menus/UserSettings.java +++ b/src/main/java/design/controller/userinput/menus/UserSettings.java @@ -3,11 +3,21 @@ 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"; @@ -15,14 +25,41 @@ public class UserSettings extends Menu { @Override public List<MenuOption> getMenuOptions() { - return List.of( - new MenuOption("return to main menu", () -> new MainMenu().present()), - new MenuOption("switch user...", () -> { - Action doAfter = this::present; - new SelectUser(doAfter).present(); - }), - new MenuOption("set username...", () -> {}), - new MenuOption("set password...", () -> {}) - ); + 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(); + })); + + return opts; } } |
