MatchStatTabController.java 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package controllers;
  2. import java.net.URL;
  3. import java.util.List;
  4. import java.util.Map;
  5. import java.util.ResourceBundle;
  6. import com.google.common.collect.Maps;
  7. import data.GuiMysql;
  8. import javafx.fxml.FXML;
  9. import javafx.fxml.Initializable;
  10. import javafx.scene.control.TableColumn;
  11. import javafx.scene.control.TableView;
  12. import javafx.scene.control.cell.MapValueFactory;
  13. import objects.TeamStanding;
  14. @SuppressWarnings("rawtypes") public class MatchStatTabController implements Initializable {
  15. private static final String GOALS_CONCEDED = "goalsConceded";
  16. private static final String GOALS_SCORED = "goalsScored";
  17. private static final String POINTS_STRING = "points";
  18. private static final String GAMES_PLAYED = "gamesPlayed";
  19. private static MatchStatTabController instance;
  20. @FXML TableView<Map<String, Object>> matchStatTable;
  21. @FXML TableColumn<Map, String> team = new TableColumn<>("team");
  22. @FXML TableColumn<Map, Integer> gamesPlayed = new TableColumn<>(GAMES_PLAYED);
  23. @FXML TableColumn<Map, Integer> win = new TableColumn<>("win");
  24. @FXML TableColumn<Map, Integer> draw = new TableColumn<>("draw");
  25. @FXML TableColumn<Map, Integer> loss = new TableColumn<>("loss");
  26. @FXML TableColumn<Map, Integer> points = new TableColumn<>(POINTS_STRING);
  27. @FXML TableColumn<Map, Float> goalsScored = new TableColumn<>(GOALS_SCORED);
  28. @FXML TableColumn<Map, Float> goalsConceded = new TableColumn<>(GOALS_CONCEDED);
  29. @FXML TableColumn<Map, Float> diff = new TableColumn<>("diff");
  30. public static MatchStatTabController getInstance() {
  31. if (instance == null) {
  32. synchronized (MatchStatTabController.class) {
  33. if (instance == null) {
  34. instance = new MatchStatTabController();
  35. }
  36. }
  37. }
  38. return instance;
  39. }
  40. @Override public void initialize(URL arg0, ResourceBundle arg1) {
  41. team.setCellValueFactory(new MapValueFactory<>("team"));
  42. gamesPlayed.setCellValueFactory(new MapValueFactory<>(GAMES_PLAYED));
  43. win.setCellValueFactory(new MapValueFactory<>("win"));
  44. draw.setCellValueFactory(new MapValueFactory<>("draw"));
  45. loss.setCellValueFactory(new MapValueFactory<>("loss"));
  46. points.setCellValueFactory(new MapValueFactory<>(POINTS_STRING));
  47. goalsScored.setCellValueFactory(new MapValueFactory<>(GOALS_SCORED));
  48. goalsConceded.setCellValueFactory(new MapValueFactory<>(GOALS_CONCEDED));
  49. diff.setCellValueFactory(new MapValueFactory<>("diff"));
  50. instance = this;
  51. }
  52. public void setLeagueStandingsTable(int leagueId, String season, int countryId, String date) {
  53. final List<TeamStanding> res = GuiMysql.getInstance().getLeagueTable(leagueId, season, countryId, date);
  54. matchStatTable.getItems().clear();
  55. for (final TeamStanding ts : res) {
  56. final Map<String, Object> line = Maps.newHashMap();
  57. final int numGamesPlayed = ts.getWins() + ts.getDraws() + ts.getLosses();
  58. line.put("team", ts.getTeamName());
  59. line.put(GAMES_PLAYED, numGamesPlayed);
  60. line.put("win", ts.getWins());
  61. line.put("draw", ts.getDraws());
  62. line.put("loss", ts.getLosses());
  63. line.put(POINTS_STRING, ts.getPoints());
  64. line.put(GOALS_SCORED, ts.getGoalsScored() / numGamesPlayed);
  65. line.put(GOALS_CONCEDED, ts.getGoalsConceded() / numGamesPlayed);
  66. matchStatTable.getItems().add(line);
  67. }
  68. }
  69. }