summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/design/controller/userinput/menus/HistoryMenu.java30
-rw-r--r--src/main/java/design/controller/userinput/menus/MainMenu.java41
-rw-r--r--src/main/java/design/persistence/JSONLeagueDatabase.java6
-rw-r--r--src/main/java/design/persistence/JSONPersonalDatabase.java6
4 files changed, 56 insertions, 27 deletions
diff --git a/src/main/java/design/controller/userinput/menus/HistoryMenu.java b/src/main/java/design/controller/userinput/menus/HistoryMenu.java
new file mode 100644
index 0000000..226b331
--- /dev/null
+++ b/src/main/java/design/controller/userinput/menus/HistoryMenu.java
@@ -0,0 +1,30 @@
+package design.controller.userinput.menus;
+
+import design.controller.userinput.Menu;
+import design.controller.userinput.MenuOption;
+import design.controller.userinput.UndoActions;
+
+import java.util.List;
+
+public class HistoryMenu extends Menu {
+
+ @Override
+ public String getTitle() {
+ return "History";
+ }
+
+ @Override
+ public List<MenuOption> getMenuOptions() {
+ return List.of(
+ new MenuOption("return to main menu", () -> new MainMenu().present()),
+ new MenuOption("undo", () -> {
+ UndoActions.undoWithSave();
+ this.present();
+ }),
+ new MenuOption("redo", () -> {
+ UndoActions.redoWithSave();
+ this.present();
+ })
+ );
+ }
+}
diff --git a/src/main/java/design/controller/userinput/menus/MainMenu.java b/src/main/java/design/controller/userinput/menus/MainMenu.java
index 0c42422..3f520e4 100644
--- a/src/main/java/design/controller/userinput/menus/MainMenu.java
+++ b/src/main/java/design/controller/userinput/menus/MainMenu.java
@@ -2,7 +2,6 @@ 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;
@@ -15,33 +14,21 @@ public class MainMenu extends Menu {
@Override
public List<MenuOption> getMenuOptions() {
- 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())
-
- );
+ List<MenuOption> options = new java.util.ArrayList<>();
+ options.add(new MenuOption("quit", () -> System.exit(0)));
+ if (Session.isGuest()) {
+ options.add(new MenuOption("guest settings...", () -> new UserSettings().present()));
+ options.add(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()),
- new MenuOption("League play...", () -> new SelectLeague().present()),
- new MenuOption("manage data...", () -> new ImportExportMenu().present())
- );
+ options.add(new MenuOption("manage history...", () -> new HistoryMenu().present()));
+ options.add(new MenuOption("user settings...", () -> new UserSettings().present()));
+ options.add(new MenuOption("manage courses...", () -> new ManageCourses().present()));
+ options.add(new MenuOption("manage clubs...", () -> new ManageClubs().present()));
+ options.add(new MenuOption("statistics...", () -> new StatisticsMenu().present()));
+ options.add(new MenuOption("log round...", () -> new HolePlayMenu().present()));
+ options.add(new MenuOption("league play...", () -> new SelectLeague().present()));
+ options.add(new MenuOption("manage data...", () -> new ImportExportMenu().present()));
}
+ return options;
}
}
diff --git a/src/main/java/design/persistence/JSONLeagueDatabase.java b/src/main/java/design/persistence/JSONLeagueDatabase.java
index 977e162..b5f4bc3 100644
--- a/src/main/java/design/persistence/JSONLeagueDatabase.java
+++ b/src/main/java/design/persistence/JSONLeagueDatabase.java
@@ -23,6 +23,12 @@ public class JSONLeagueDatabase implements LeagueDatabase {
return INSTANCE;
}
+ // static instance strictly for testing, to not add data to leaguedb.json
+ static JSONLeagueDatabase testInstance(String filename) {
+ INSTANCE = new JSONLeagueDatabase(filename);
+ return INSTANCE;
+ }
+
private final Map<Integer, League> cache;
private final ObjectMapper mapper;
private final File file;
diff --git a/src/main/java/design/persistence/JSONPersonalDatabase.java b/src/main/java/design/persistence/JSONPersonalDatabase.java
index b92dddf..e035ae4 100644
--- a/src/main/java/design/persistence/JSONPersonalDatabase.java
+++ b/src/main/java/design/persistence/JSONPersonalDatabase.java
@@ -22,6 +22,12 @@ public class JSONPersonalDatabase implements PersonalDatabase {
return INSTANCE;
}
+ // static instance strictly for testing, to not add data to personaldb.json
+ static JSONPersonalDatabase testInstance(String filename) {
+ INSTANCE = new JSONPersonalDatabase(filename);
+ return INSTANCE;
+ }
+
private final Map<String, Golfer> cache;
private final ObjectMapper mapper;
private final File file;