diff options
Diffstat (limited to '')
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/ManageClubs.java (renamed from src/main/java/design/controller/userinput/menus/AddClubMenu.java) | 52 |
1 files changed, 40 insertions, 12 deletions
diff --git a/src/main/java/design/controller/userinput/menus/AddClubMenu.java b/src/main/java/design/controller/userinput/menus/ManageClubs.java index ea18ed5..56d645f 100644 --- a/src/main/java/design/controller/userinput/menus/AddClubMenu.java +++ b/src/main/java/design/controller/userinput/menus/ManageClubs.java @@ -9,24 +9,53 @@ import design.runtime.Session; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Scanner; -public class AddClubMenu extends Menu { +public class ManageClubs extends Menu { + Golfer golfer = Session.getCurrentGolfer(); @Override public String getTitle() { - return "add a club"; + return "manage clubs"; } @Override public List<MenuOption> getMenuOptions() { - List<MenuOption> opts = new ArrayList<>(); + List<MenuOption> opts = new java.util.ArrayList<>(); + opts.add(new MenuOption("return to main menu", () -> new MainMenu().present())); - opts.add(new MenuOption("create new club", () -> { - Golfer g = Session.getCurrentGolfer(); - if (g == null) { + opts.add(new MenuOption("list clubs", () -> { + for (Club club : golfer.getClubs()) { + System.out.printf("- %s\n", club); + } + this.present(); + })); + + opts.add(new MenuOption("remove club...", () -> { + new Menu() { + @Override + public String getTitle() { + return "remove club"; + } + + @Override + public List<MenuOption> getMenuOptions() { + List<MenuOption> list = new ArrayList<>(); + for (Club c : golfer.getClubs()) { + MenuOption menuOption = new MenuOption(c.toString(), () -> { + golfer.removeClub(c); + this.present(); + }); + list.add(menuOption); + } + return list; + } + }.present(); + })); + + opts.add(new MenuOption("add club...", () -> { + if (golfer == null) { System.out.println("No user loaded."); new UserSettings().present(); return; @@ -59,19 +88,18 @@ public class AddClubMenu extends Menu { type = types[idx - 1]; } - g.addClub(manufacture, nickname, type); + golfer.addClub(manufacture, nickname, type); // Add club to JSON try { - PersonalDatabase.INSTANCE.updateGolfer(g); + PersonalDatabase.INSTANCE.updateGolfer(golfer); System.out.println("Club added and saved."); } catch (IOException e) { throw new RuntimeException("Failed to save club", e); } new UserSettings().present(); - })); - - opts.add(new MenuOption("cancel", () -> new UserSettings().present())); + }));// Pick type +// Add club to JSON return opts; } } |
