package design.controller.userinput.menus; import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; import design.model.Course; import design.model.Golfer; import design.runtime.Session; import java.util.ArrayList; import java.util.List; public class ManageCourses extends Menu { Golfer golfer = Session.getCurrentGolfer(); @Override public String getTitle() { return "manage courses"; } @Override public List getMenuOptions() { List opts = new java.util.ArrayList<>(); opts.add(new MenuOption("return to main menu", () -> new MainMenu().present())); opts.add(new MenuOption("list courses", () -> { for (Course course : golfer.getCourses()) { System.out.printf("- %s\n", course); } this.present(); })); opts.add(new MenuOption("remove course...", () -> { new Menu() { @Override public String getTitle() { return "remove course"; } @Override public List getMenuOptions() { List list = new ArrayList<>(); for (Course c : golfer.getCourses()) { MenuOption menuOption = new MenuOption(c.toString(), () -> { golfer.removeCourse(c); this.present(); }); list.add(menuOption); } return list; } }.present(); })); opts.add(new MenuOption("add course...", () -> new SearchMenu().present())); return opts; } }