summaryrefslogtreecommitdiff
path: root/src/main/java/design
diff options
context:
space:
mode:
authorTyler Ferrari <69283684+Sowgro@users.noreply.github.com>2025-10-07 08:10:57 -0400
committerGitHub <noreply@github.com>2025-10-07 08:10:57 -0400
commitff2e4efb6e4a2089caaf494438bd2b86bd05ae61 (patch)
tree0ccc8eefb4a1e8d031c6a8f0090e6e213ea8e1bb /src/main/java/design
parent7ceecf80509e3387e9aa57d2996c333e4bfe4966 (diff)
parent1e243817fc4072c8da1905f0e5791e1756f179e4 (diff)
downloaddesignproject-design-6-ff2e4efb6e4a2089caaf494438bd2b86bd05ae61.tar.gz
designproject-design-6-ff2e4efb6e4a2089caaf494438bd2b86bd05ae61.tar.bz2
designproject-design-6-ff2e4efb6e4a2089caaf494438bd2b86bd05ae61.zip
Merge pull request #6 from RIT-SWEN-262/ui-tweaks-login
UI tweaks login
Diffstat (limited to '')
-rw-r--r--src/main/java/design/ParPal.java5
-rw-r--r--src/main/java/design/controller/userinput/Action.java2
-rw-r--r--src/main/java/design/controller/userinput/Menu.java7
-rw-r--r--src/main/java/design/controller/userinput/MenuOption.java4
-rw-r--r--src/main/java/design/controller/userinput/menus/CourseSelectMenu.java4
-rw-r--r--src/main/java/design/controller/userinput/menus/HolePlayMenu.java8
-rw-r--r--src/main/java/design/controller/userinput/menus/MainMenu.java8
-rw-r--r--src/main/java/design/controller/userinput/menus/SelectUser.java28
-rw-r--r--src/main/java/design/controller/userinput/menus/StatisticsMenu.java2
-rw-r--r--src/main/java/design/controller/userinput/menus/UserSettings.java12
10 files changed, 48 insertions, 32 deletions
diff --git a/src/main/java/design/ParPal.java b/src/main/java/design/ParPal.java
index 4ed6949..6ea9872 100644
--- a/src/main/java/design/ParPal.java
+++ b/src/main/java/design/ParPal.java
@@ -1,9 +1,12 @@
package design;
+import design.controller.userinput.Action;
import design.controller.userinput.menus.MainMenu;
+import design.controller.userinput.menus.SelectUser;
public class ParPal {
public static void main(String[] args) {
- new MainMenu().present();
+ Action doAfter = () -> new MainMenu().present();
+ new SelectUser(doAfter).present();
}
}
diff --git a/src/main/java/design/controller/userinput/Action.java b/src/main/java/design/controller/userinput/Action.java
index 0b52bfc..bb16585 100644
--- a/src/main/java/design/controller/userinput/Action.java
+++ b/src/main/java/design/controller/userinput/Action.java
@@ -2,5 +2,5 @@ package design.controller.userinput;
@FunctionalInterface
public interface Action {
- void onCommand(String[] args);
+ void onCommand();
}
diff --git a/src/main/java/design/controller/userinput/Menu.java b/src/main/java/design/controller/userinput/Menu.java
index 605b640..8eac5dd 100644
--- a/src/main/java/design/controller/userinput/Menu.java
+++ b/src/main/java/design/controller/userinput/Menu.java
@@ -14,13 +14,14 @@ public abstract class Menu {
MenuOption menuOption = menuOptions.get(i);
System.out.printf("%s: %s\n", i, menuOption.getName());
}
+
+ System.out.print("Selection: ");
Scanner sc = new Scanner(System.in);
var line = sc.nextLine();
- var split = line.split(" ");
try {
- int i = Integer.parseInt(split[0]);
- menuOptions.get(i).onCommand(Arrays.copyOfRange(split, 1, split.length));
+ int i = Integer.parseInt(line);
+ menuOptions.get(i).onCommand();
} catch (ArrayIndexOutOfBoundsException ex) {
System.err.printf("Invalid option \"%s\"\n", line);
present();
diff --git a/src/main/java/design/controller/userinput/MenuOption.java b/src/main/java/design/controller/userinput/MenuOption.java
index 9635ebd..5ae9521 100644
--- a/src/main/java/design/controller/userinput/MenuOption.java
+++ b/src/main/java/design/controller/userinput/MenuOption.java
@@ -13,7 +13,7 @@ public class MenuOption {
return name;
}
- public void onCommand(String[] args) {
- action.onCommand(args);
+ public void onCommand() {
+ action.onCommand();
}
}
diff --git a/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java b/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java
index 881c393..8df9823 100644
--- a/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java
+++ b/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java
@@ -26,10 +26,10 @@ public class CourseSelectMenu extends Menu {
List<MenuOption> opts = new ArrayList<>();
// 0) back
- opts.add(new MenuOption("back to main menu", a -> new MainMenu().present()));
+ opts.add(new MenuOption("back to main menu", () -> new MainMenu().present()));
// 1) pick course by number TODO: add error checking
- opts.add(new MenuOption("pick course by number (1..1000)", a -> {
+ opts.add(new MenuOption("pick course by number (1..1000)", () -> {
Scanner sc = new Scanner(System.in);
System.out.print("Course number (1..1000): ");
diff --git a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java
index bcd7560..e12bdfa 100644
--- a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java
+++ b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java
@@ -36,14 +36,14 @@ public class HolePlayMenu extends Menu {
if (inSetup) {
// 0) Start hole
- opts.add(new MenuOption("start hole", (a) -> {
+ opts.add(new MenuOption("start hole", () -> {
ctx.startHole();
System.out.println("Started hole " + round.getCurrentHole().getNumber() + ".");
this.present();
}));
} else {
// 0) Take a shot
- opts.add(new MenuOption("take a shot", (a) -> {
+ opts.add(new MenuOption("take a shot", () -> {
// Gets club
Scanner sc = new Scanner(System.in);
System.out.print("Club nickname: ");
@@ -68,7 +68,7 @@ public class HolePlayMenu extends Menu {
}));
// 1) Hole out
- opts.add(new MenuOption("hole out", (a) -> {
+ opts.add(new MenuOption("hole out", () -> {
// Precedes to next hole
int prev = round.getCurrentHole().getNumber();
ctx.holeOut();
@@ -78,7 +78,7 @@ public class HolePlayMenu extends Menu {
}
// End round (always shown)
- opts.add(new MenuOption("end round", (a) -> {
+ opts.add(new MenuOption("end round", () -> {
ctx.endRoundNow();
System.out.println("Round ended.");
new MainMenu().present();
diff --git a/src/main/java/design/controller/userinput/menus/MainMenu.java b/src/main/java/design/controller/userinput/menus/MainMenu.java
index c76e61a..1d6b72d 100644
--- a/src/main/java/design/controller/userinput/menus/MainMenu.java
+++ b/src/main/java/design/controller/userinput/menus/MainMenu.java
@@ -14,9 +14,9 @@ public class MainMenu extends Menu {
@Override
public List<MenuOption> getMenuOptions() {
return List.of(
- new MenuOption("user settings...", (a) -> new UserSettings().present()),
- new MenuOption("statistics...", (a) -> new StatisticsMenu().present()),
- new MenuOption("log round...", (a) -> new CourseSelectMenu().present()),
- new MenuOption("quit", (a) -> {}));
+ new MenuOption("user settings...", () -> new UserSettings().present()),
+ new MenuOption("statistics...", () -> new StatisticsMenu().present()),
+ new MenuOption("log round...", () -> new CourseSelectMenu().present()),
+ new MenuOption("quit", () -> {}));
}
}
diff --git a/src/main/java/design/controller/userinput/menus/SelectUser.java b/src/main/java/design/controller/userinput/menus/SelectUser.java
index 2f1a867..82e2338 100644
--- a/src/main/java/design/controller/userinput/menus/SelectUser.java
+++ b/src/main/java/design/controller/userinput/menus/SelectUser.java
@@ -1,16 +1,22 @@
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.runtime.Session;
import design.persistence.PersonalDatabase;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
public class SelectUser extends Menu {
- PersonalDatabase personalDB = PersonalDatabase.INSTANCE;
+ private final PersonalDatabase personalDB = PersonalDatabase.INSTANCE;
+ private final Action doAfter;
+
+ public SelectUser(Action doAfter) {
+ this.doAfter = doAfter;
+ }
@Override
public String getTitle() {
@@ -20,14 +26,16 @@ public class SelectUser extends Menu {
@Override
public List<MenuOption> getMenuOptions() {
var l = new ArrayList<MenuOption>();
- // Sets user in Session too
- l.addAll(Arrays.stream(personalDB.getGolfers()).map(i -> new MenuOption(i.getUsername(), (a) -> {
- Session.setCurrentGolfer(i);
- System.out.printf("Loaded user: %s%n", i.getUsername());
- new UserSettings().present();
- })).toList());
- l.add(new MenuOption("<create>", (a) -> {
- }));
+ for (Golfer i : personalDB.getGolfers()) {
+ MenuOption menuOption = new MenuOption(i.getUsername(), () -> {
+ // Sets user in Session too
+ Session.setCurrentGolfer(i);
+ System.out.printf("Loaded user: %s%n", i.getUsername());
+ doAfter.onCommand();
+ });
+ l.add(menuOption);
+ }
+ l.add(new MenuOption("<create>", () -> {}));
return l;
}
}
diff --git a/src/main/java/design/controller/userinput/menus/StatisticsMenu.java b/src/main/java/design/controller/userinput/menus/StatisticsMenu.java
index 66d60e3..c609177 100644
--- a/src/main/java/design/controller/userinput/menus/StatisticsMenu.java
+++ b/src/main/java/design/controller/userinput/menus/StatisticsMenu.java
@@ -15,7 +15,7 @@ public class StatisticsMenu extends Menu {
@Override
public List<MenuOption> getMenuOptions() {
return List.of(
- new MenuOption("return to main menu", (c) -> new MainMenu().present())
+ new MenuOption("return to main menu", () -> new MainMenu().present())
);
}
}
diff --git a/src/main/java/design/controller/userinput/menus/UserSettings.java b/src/main/java/design/controller/userinput/menus/UserSettings.java
index a866889..ab260da 100644
--- a/src/main/java/design/controller/userinput/menus/UserSettings.java
+++ b/src/main/java/design/controller/userinput/menus/UserSettings.java
@@ -1,5 +1,6 @@
package design.controller.userinput.menus;
+import design.controller.userinput.Action;
import design.controller.userinput.Menu;
import design.controller.userinput.MenuOption;
@@ -15,10 +16,13 @@ public class UserSettings extends Menu {
@Override
public List<MenuOption> getMenuOptions() {
return List.of(
- new MenuOption("return to main menu", (a) -> new MainMenu().present()),
- new MenuOption("switch user...", (a) -> new SelectUser().present()),
- new MenuOption("set username...", (a -> {})),
- new MenuOption("set password...", (a) -> {})
+ 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...", () -> {})
);
}
}