summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller/userinput
diff options
context:
space:
mode:
Diffstat (limited to '')
-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
3 files changed, 67 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;
}