diff options
Diffstat (limited to 'src/main/java/design')
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; |
