diff options
| author | Tyler Ferrari <69283684+Sowgro@users.noreply.github.com> | 2025-10-07 09:11:10 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-07 09:11:10 -0400 |
| commit | 955ba36fa0648b9239d9eae7c3f122c549b272c6 (patch) | |
| tree | 81bc3011253b7a9a9c72517292f03a1fd2ac194d /src/main/java/design/controller/userinput/menus | |
| parent | a119e407dbc13cdd28009ae5acea67f9311e0e9b (diff) | |
| parent | 0dbbb2956c67e4d22a9ee8614a29c3919177d7d5 (diff) | |
| download | designproject-design-6-955ba36fa0648b9239d9eae7c3f122c549b272c6.tar.gz designproject-design-6-955ba36fa0648b9239d9eae7c3f122c549b272c6.tar.bz2 designproject-design-6-955ba36fa0648b9239d9eae7c3f122c549b272c6.zip | |
Merge pull request #8 from RIT-SWEN-262/user-settings
Add user settings
Diffstat (limited to 'src/main/java/design/controller/userinput/menus')
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/SelectUser.java | 31 | ||||
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/UserSettings.java | 55 |
2 files changed, 73 insertions, 13 deletions
diff --git a/src/main/java/design/controller/userinput/menus/SelectUser.java b/src/main/java/design/controller/userinput/menus/SelectUser.java index 82e2338..8dee860 100644 --- a/src/main/java/design/controller/userinput/menus/SelectUser.java +++ b/src/main/java/design/controller/userinput/menus/SelectUser.java @@ -7,8 +7,10 @@ import design.model.Golfer; import design.runtime.Session; import design.persistence.PersonalDatabase; +import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Scanner; public class SelectUser extends Menu { private final PersonalDatabase personalDB = PersonalDatabase.INSTANCE; @@ -25,7 +27,8 @@ public class SelectUser extends Menu { @Override public List<MenuOption> getMenuOptions() { - var l = new ArrayList<MenuOption>(); + var opts = new ArrayList<MenuOption>(); + for (Golfer i : personalDB.getGolfers()) { MenuOption menuOption = new MenuOption(i.getUsername(), () -> { // Sets user in Session too @@ -33,9 +36,29 @@ public class SelectUser extends Menu { System.out.printf("Loaded user: %s%n", i.getUsername()); doAfter.onCommand(); }); - l.add(menuOption); + opts.add(menuOption); } - l.add(new MenuOption("<create>", () -> {})); - return l; + + opts.add(new MenuOption("<create>", () -> { + Scanner sc = new Scanner(System.in); + + System.out.print("Enter username: "); + var username = sc.nextLine(); + + System.out.print("Enter full name: "); + var fullName = sc.nextLine(); + + System.out.print("Enter password: "); + var password = sc.nextLine(); + + try { + personalDB.addGolfer(new Golfer(fullName, username, password)); + } catch (IOException ex) { + throw new RuntimeException(ex); + } + this.present(); + })); + + return opts; } } 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; } } |
