summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller/userinput/menus/UserSettings.java
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-10-07 09:10:34 -0400
committersowgro <tpoke.ferrari@gmail.com>2025-10-07 09:10:34 -0400
commit0dbbb2956c67e4d22a9ee8614a29c3919177d7d5 (patch)
tree27a323aaed38456ac53702277ae8d6903cf2c2fc /src/main/java/design/controller/userinput/menus/UserSettings.java
parentff2e4efb6e4a2089caaf494438bd2b86bd05ae61 (diff)
downloaddesignproject-design-6-0dbbb2956c67e4d22a9ee8614a29c3919177d7d5.tar.gz
designproject-design-6-0dbbb2956c67e4d22a9ee8614a29c3919177d7d5.tar.bz2
designproject-design-6-0dbbb2956c67e4d22a9ee8614a29c3919177d7d5.zip
Add user settings
Diffstat (limited to 'src/main/java/design/controller/userinput/menus/UserSettings.java')
-rw-r--r--src/main/java/design/controller/userinput/menus/UserSettings.java55
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;
}
}