diff options
Diffstat (limited to 'src')
7 files changed, 97 insertions, 28 deletions
diff --git a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java index 6651500..e4dc43d 100644 --- a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java +++ b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java @@ -28,6 +28,10 @@ public class HolePlayMenu extends Menu { this.ctx = new HolePlayContext(this.golfer, round, PersonalDatabase.instance()); } + public Round getRound() { + return round; + } + @Override public String getTitle() { return String.format("hole play - %s | hole %d", round.getCourse().getName(), diff --git a/src/main/java/design/controller/userinput/menus/LeageMenu.java b/src/main/java/design/controller/userinput/menus/LeageMenu.java index d9afa91..4e2f079 100644 --- a/src/main/java/design/controller/userinput/menus/LeageMenu.java +++ b/src/main/java/design/controller/userinput/menus/LeageMenu.java @@ -3,6 +3,8 @@ package design.controller.userinput.menus; import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; import design.model.League; +import design.model.Round; +import design.runtime.Session; import java.util.ArrayList; import java.util.List; @@ -22,9 +24,15 @@ public class LeageMenu extends Menu { @Override public List<MenuOption> getMenuOptions() { List<MenuOption> options = new ArrayList<>(); - options.add(new MenuOption("statistics...", () -> {})); - options.add(new MenuOption("leaderboard...", () -> {})); - options.add(new MenuOption("log round...", () -> {})); + options.add(new MenuOption("statistics...", () -> { + new LeagueStatsMenu(league).present(); + })); + options.add(new MenuOption("log round...", () -> { + var holePlay = new HolePlayMenu(); + holePlay.present(); + Round round = holePlay.getRound(); + league.recordPlay(Session.getCurrentGolfer(), league.getCurrentMatch(), round); + })); return options; } } diff --git a/src/main/java/design/controller/userinput/menus/LeagueStatsMenu.java b/src/main/java/design/controller/userinput/menus/LeagueStatsMenu.java new file mode 100644 index 0000000..d0aa2b2 --- /dev/null +++ b/src/main/java/design/controller/userinput/menus/LeagueStatsMenu.java @@ -0,0 +1,43 @@ +package design.controller.userinput.menus; + +import design.controller.userinput.Menu; +import design.controller.userinput.MenuOption; +import design.model.League; +import design.model.statistics.LeagueStats; + +import java.util.List; + +public class LeagueStatsMenu extends Menu { + private final LeagueStats league; + + public LeagueStatsMenu(League league) { + this.league = new LeagueStats(league); + } + + @Override + public String getTitle() { + return "League Stats"; + } + + @Override + public List<MenuOption> getMenuOptions() { + return List.of( + new MenuOption("View Played Matches", () -> { + System.out.println(league.getMatchesPlayed()); + this.present(); + }), + new MenuOption("Get Scores", () -> { + System.out.println(league.getScores()); + this.present(); + }), + new MenuOption("Get Standings", () -> { + System.out.println(league.getStandings()); + this.present(); + }), + new MenuOption("Get Winners", () -> { + System.out.println(league.getWinners()); + this.present(); + }) + ); + } +} diff --git a/src/main/java/design/model/League.java b/src/main/java/design/model/League.java index 2a7366a..44dc83e 100644 --- a/src/main/java/design/model/League.java +++ b/src/main/java/design/model/League.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -104,6 +105,15 @@ public abstract class League { schedule.add(match); } + public Match getCurrentMatch() { + for(Match m : schedule){ + if(m.getStart().isBefore(LocalDateTime.now()) && m.getEnd().isAfter(LocalDateTime.now())){ + return m; + } + } + return null; + } + public void setId(int id) { assert this.id == -1; this.id = id; @@ -130,5 +140,5 @@ public abstract class League { public abstract Map<?, Integer> getResults(); - public abstract void finalizeMatch(Match match); + //public abstract void finalizeMatch(Match match); } diff --git a/src/main/java/design/model/Match.java b/src/main/java/design/model/Match.java index 525f281..3c19230 100644 --- a/src/main/java/design/model/Match.java +++ b/src/main/java/design/model/Match.java @@ -49,6 +49,10 @@ public class Match { return start; } + public LocalDateTime getEnd() { + return end; + } + public int getHoleCount() { return holeCount; } diff --git a/src/main/java/design/model/ScrambleLeague.java b/src/main/java/design/model/ScrambleLeague.java index adf2105..64f62f5 100644 --- a/src/main/java/design/model/ScrambleLeague.java +++ b/src/main/java/design/model/ScrambleLeague.java @@ -89,17 +89,17 @@ public class ScrambleLeague extends League { return getTotalTeamScores(); } - @Override - public void finalizeMatch(Match match) { - getCompletedMatches().add(match); - for(int i = 0; i < participants.size(); i++){ - Team team = participants.get(i); - Round round = match.getRoundFor(i); - if(round != null){ - for(Golfer member : team.getMembers()){ - member.addRound(round); - } - } - } - } +// @Override +// public void finalizeMatch(Match match) { +// getCompletedMatches().add(match); +// for(int i = 0; i < participants.size(); i++){ +// Team team = participants.get(i); +// Round round = match.getRoundFor(i); +// if(round != null){ +// for(Golfer member : team.getMembers()){ +// member.addRound(round); +// } +// } +// } +// } } diff --git a/src/main/java/design/model/StrokeLeague.java b/src/main/java/design/model/StrokeLeague.java index 48889b7..497db20 100644 --- a/src/main/java/design/model/StrokeLeague.java +++ b/src/main/java/design/model/StrokeLeague.java @@ -73,15 +73,15 @@ public class StrokeLeague extends League { return getTotalStrokes(); } - @Override - public void finalizeMatch(Match match) { - getCompletedMatches().add(match); - for(int i = 0; i < participants.size(); i++){ - Golfer player = participants.get(i); - Round round = match.getRoundFor(i); - if(round != null){ - player.addRound(round); - } - } - } +// @Override +// public void finalizeMatch(Match match) { +// getCompletedMatches().add(match); +// for(int i = 0; i < participants.size(); i++){ +// Golfer player = participants.get(i); +// Round round = match.getRoundFor(i); +// if(round != null){ +// player.addRound(round); +// } +// } +// } } |
