summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller/userinput/menus/UserSettings.java
diff options
context:
space:
mode:
authorJacob Shimp <jrs9538@g.rit.edu>2025-10-08 19:31:45 -0400
committerJacob Shimp <jrs9538@g.rit.edu>2025-10-08 19:31:45 -0400
commit4a720e851d188688571e2f5c7f46b6389e9a429f (patch)
tree8516b582587b245226f2db1603ad2ca0fd694cf2 /src/main/java/design/controller/userinput/menus/UserSettings.java
parent030786488b2956b7da6b0a7fd460923d7b13a25f (diff)
parentbf6b01e5005618e6ccdfb4217311a8f94dd5a0dd (diff)
downloaddesignproject-design-6-4a720e851d188688571e2f5c7f46b6389e9a429f.tar.gz
designproject-design-6-4a720e851d188688571e2f5c7f46b6389e9a429f.tar.bz2
designproject-design-6-4a720e851d188688571e2f5c7f46b6389e9a429f.zip
pull from main
Diffstat (limited to 'src/main/java/design/controller/userinput/menus/UserSettings.java')
-rw-r--r--src/main/java/design/controller/userinput/menus/UserSettings.java57
1 files changed, 48 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..34b645d 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,43 @@ 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();
+ }));
+
+ opts.add(new MenuOption("add a club...", () -> new AddClubMenu().present()));
+
+ return opts;
}
}