summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Lizzio <142752852+Michael-Lizzio@users.noreply.github.com>2025-11-11 08:56:30 -0500
committerGitHub <noreply@github.com>2025-11-11 08:56:30 -0500
commitc8e3d79f09670a94c0a2f503ca6c78f9913a1669 (patch)
tree9a75733719d8adc2be21b07ddd944108c9991391
parentf438bcc00e442ec18f6a0bc8715398b981b1b189 (diff)
parentbe1e79c8b1196e61a3dc9b4b052f886243460ceb (diff)
downloaddesignproject-design-6-c8e3d79f09670a94c0a2f503ca6c78f9913a1669.tar.gz
designproject-design-6-c8e3d79f09670a94c0a2f503ca6c78f9913a1669.tar.bz2
designproject-design-6-c8e3d79f09670a94c0a2f503ca6c78f9913a1669.zip
Merge pull request #16 from RIT-SWEN-262/lizzio-ProxyGuests
Added isGuest to Session and updated menus
-rw-r--r--src/main/java/design/controller/userinput/menus/MainMenu.java43
-rw-r--r--src/main/java/design/controller/userinput/menus/SelectUser.java6
-rw-r--r--src/main/java/design/controller/userinput/menus/UserSettings.java62
-rw-r--r--src/main/java/design/runtime/Session.java11
4 files changed, 78 insertions, 44 deletions
diff --git a/src/main/java/design/controller/userinput/menus/MainMenu.java b/src/main/java/design/controller/userinput/menus/MainMenu.java
index 4a221f0..8a30258 100644
--- a/src/main/java/design/controller/userinput/menus/MainMenu.java
+++ b/src/main/java/design/controller/userinput/menus/MainMenu.java
@@ -3,6 +3,7 @@ package design.controller.userinput.menus;
import design.controller.userinput.Menu;
import design.controller.userinput.MenuOption;
import design.controller.userinput.UndoActions;
+import design.runtime.Session;
import java.util.List;
@@ -14,20 +15,32 @@ public class MainMenu extends Menu {
@Override
public List<MenuOption> getMenuOptions() {
- return List.of(
- new MenuOption("quit", () -> System.exit(0)),
- new MenuOption("undo", () -> {
- UndoActions.undoWithSave();
- this.present();
- }),
- new MenuOption("redo", () -> {
- UndoActions.redoWithSave();
- this.present();
- }),
- new MenuOption("user settings...", () -> new UserSettings().present()),
- new MenuOption("manage courses...", () -> new ManageCourses().present()),
- new MenuOption("manage clubs...", () -> new ManageClubs().present()),
- new MenuOption("statistics...", () -> new StatisticsMenu().present()),
- new MenuOption("log round...", () -> new HolePlayMenu().present()));
+ boolean guest = Session.isGuest();
+ if (guest) {
+ return List.of(
+ new MenuOption("quit", () -> System.exit(0)),
+ new MenuOption("guest settings...", () -> new UserSettings().present()),
+ new MenuOption("browse courses...", () -> new SearchMenu().present())
+
+ );
+ } else {
+ return List.of(
+ new MenuOption("quit", () -> System.exit(0)),
+ new MenuOption("undo", () -> {
+ UndoActions.undoWithSave();
+ this.present();
+ }),
+ new MenuOption("redo", () -> {
+ UndoActions.redoWithSave();
+ this.present();
+ }),
+ new MenuOption("user settings...", () -> new UserSettings().present()),
+ new MenuOption("manage courses...", () -> new ManageCourses().present()),
+ new MenuOption("manage clubs...", () -> new ManageClubs().present()),
+ new MenuOption("statistics...", () -> new StatisticsMenu().present()),
+ new MenuOption("log round...", () -> new HolePlayMenu().present())
+
+ );
+ }
}
}
diff --git a/src/main/java/design/controller/userinput/menus/SelectUser.java b/src/main/java/design/controller/userinput/menus/SelectUser.java
index a2c7071..6931a4b 100644
--- a/src/main/java/design/controller/userinput/menus/SelectUser.java
+++ b/src/main/java/design/controller/userinput/menus/SelectUser.java
@@ -53,6 +53,12 @@ public class SelectUser extends Menu {
this.present();
}));
+ opts.add(new MenuOption("<guest login>", () -> {
+ Session.setCurrentGolfer(null);
+ Session.setGuest(true);
+ doAfter.onAction();
+ }));
+
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 36d8d70..1b2082d 100644
--- a/src/main/java/design/controller/userinput/menus/UserSettings.java
+++ b/src/main/java/design/controller/userinput/menus/UserSettings.java
@@ -27,6 +27,8 @@ public class UserSettings extends Menu {
@Override
public List<MenuOption> getMenuOptions() {
+ boolean guest = Session.isGuest();
+
var opts = new ArrayList<MenuOption>();
opts.add(new MenuOption("return to main menu", () -> new MainMenu().present()));
@@ -36,35 +38,37 @@ public class UserSettings extends Menu {
new SelectUser(doAfter).present();
}));
- opts.add(new MenuOption("set password...", () -> {
- UndoManager.instance().capture(golfer, "Change password for @" + golfer.getUsername());
-
- 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...", () -> {
- UndoManager.instance().capture(golfer, "Change full name for @" + golfer.getUsername());
-
- 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();
- }));
+ if (!guest) {
+ opts.add(new MenuOption("set password...", () -> {
+ UndoManager.instance().capture(golfer, "Change password for @" + golfer.getUsername());
+
+ 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...", () -> {
+ UndoManager.instance().capture(golfer, "Change full name for @" + golfer.getUsername());
+
+ 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;
}
diff --git a/src/main/java/design/runtime/Session.java b/src/main/java/design/runtime/Session.java
index 59d31d8..5b00e67 100644
--- a/src/main/java/design/runtime/Session.java
+++ b/src/main/java/design/runtime/Session.java
@@ -7,12 +7,14 @@ import java.time.LocalDateTime;
public final class Session {
private static Golfer currentGolfer;
private static LocalDateTime timeOverride;
+ private static boolean isGuest = false;
public static Golfer getCurrentGolfer() {
return currentGolfer;
}
public static void setCurrentGolfer(Golfer currentGolfer) {
+ Session.setGuest(false);
Session.currentGolfer = currentGolfer;
}
@@ -23,4 +25,13 @@ public final class Session {
public static void setTimeOverride(LocalDateTime timeOverride) {
Session.timeOverride = timeOverride;
}
+
+ public static boolean isGuest() {
+ return isGuest;
+ }
+
+ public static void setGuest(boolean g) {
+ isGuest = g;
+ }
+
}