summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTyler Ferrari <69283684+Sowgro@users.noreply.github.com>2025-10-07 09:11:10 -0400
committerGitHub <noreply@github.com>2025-10-07 09:11:10 -0400
commit955ba36fa0648b9239d9eae7c3f122c549b272c6 (patch)
tree81bc3011253b7a9a9c72517292f03a1fd2ac194d /src
parenta119e407dbc13cdd28009ae5acea67f9311e0e9b (diff)
parent0dbbb2956c67e4d22a9ee8614a29c3919177d7d5 (diff)
downloaddesignproject-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 '')
-rw-r--r--src/main/java/design/controller/userinput/Menu.java1
-rw-r--r--src/main/java/design/controller/userinput/menus/SelectUser.java31
-rw-r--r--src/main/java/design/controller/userinput/menus/UserSettings.java55
3 files changed, 74 insertions, 13 deletions
diff --git a/src/main/java/design/controller/userinput/Menu.java b/src/main/java/design/controller/userinput/Menu.java
index 8eac5dd..c8090f6 100644
--- a/src/main/java/design/controller/userinput/Menu.java
+++ b/src/main/java/design/controller/userinput/Menu.java
@@ -9,6 +9,7 @@ public abstract class Menu {
public void present() {
var menuOptions = getMenuOptions();
+ System.out.println();
System.out.printf("-- %s --\n", getTitle().toUpperCase());
for (int i = 0; i < menuOptions.size(); i++) {
MenuOption menuOption = menuOptions.get(i);
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;
}
}