From 4f42747d671b0e843f050ff22c72a45dc8cbb7ec Mon Sep 17 00:00:00 2001 From: Anton Micke Date: Mon, 17 Mar 2025 17:24:54 +0100 Subject: [PATCH] Add view for past games --- .../org/kickerelo/kickerelo/data/Spieler.java | 5 +++ .../kickerelo/layout/KickerAppLayout.java | 5 ++- .../kickerelo/views/History1vs1View.java | 43 ++++++++++++++++++ .../kickerelo/views/History2vs2View.java | 45 +++++++++++++++++++ 4 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/kickerelo/kickerelo/views/History1vs1View.java create mode 100644 src/main/java/org/kickerelo/kickerelo/views/History2vs2View.java diff --git a/src/main/java/org/kickerelo/kickerelo/data/Spieler.java b/src/main/java/org/kickerelo/kickerelo/data/Spieler.java index e6ad958..257b16f 100644 --- a/src/main/java/org/kickerelo/kickerelo/data/Spieler.java +++ b/src/main/java/org/kickerelo/kickerelo/data/Spieler.java @@ -64,4 +64,9 @@ public class Spieler { public void setElo_alt(float elo_alt) { this.elo_alt = elo_alt; } + + @Override + public String toString() { + return this.name; + } } diff --git a/src/main/java/org/kickerelo/kickerelo/layout/KickerAppLayout.java b/src/main/java/org/kickerelo/kickerelo/layout/KickerAppLayout.java index 8751077..302a9b0 100644 --- a/src/main/java/org/kickerelo/kickerelo/layout/KickerAppLayout.java +++ b/src/main/java/org/kickerelo/kickerelo/layout/KickerAppLayout.java @@ -27,9 +27,12 @@ public class KickerAppLayout extends AppLayout { RouterLink playerList = new RouterLink("Spielerliste", PlayerListView.class); RouterLink graph1vs1 = new RouterLink("Graph 1 vs 1", Graph1vs1View.class); RouterLink graph2vs2 = new RouterLink("Graph 2 vs 2", Graph2vs2View.class); + RouterLink history1vs1 = new RouterLink("Resultate 1 vs 1", History1vs1View.class); + RouterLink history2vs2 = new RouterLink("Resultate 2 vs 2", History2vs2View.class); RouterLink admin = new RouterLink("Verwaltung", AdminView.class); - Tabs tabs = new Tabs(new Tab(playerList), new Tab(enter1vs1), new Tab(enter2vs2), new Tab(graph1vs1), new Tab(graph2vs2), new Tab(admin)); + Tabs tabs = new Tabs(new Tab(playerList), new Tab(enter1vs1), new Tab(enter2vs2), new Tab(graph1vs1), + new Tab(graph2vs2), new Tab(history1vs1), new Tab(history2vs2), new Tab(admin)); tabs.setOrientation(Tabs.Orientation.VERTICAL); addToDrawer(tabs); } diff --git a/src/main/java/org/kickerelo/kickerelo/views/History1vs1View.java b/src/main/java/org/kickerelo/kickerelo/views/History1vs1View.java new file mode 100644 index 0000000..7ef4104 --- /dev/null +++ b/src/main/java/org/kickerelo/kickerelo/views/History1vs1View.java @@ -0,0 +1,43 @@ +package org.kickerelo.kickerelo.views; + +import com.vaadin.flow.component.grid.Grid; +import com.vaadin.flow.component.grid.GridSortOrder; +import com.vaadin.flow.component.html.H2; +import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.data.provider.SortDirection; +import com.vaadin.flow.data.renderer.LocalDateTimeRenderer; +import com.vaadin.flow.router.Route; +import org.kickerelo.kickerelo.data.Ergebnis1vs1; +import org.kickerelo.kickerelo.repository.Ergebnis1vs1Repository; + +import java.util.List; + +@Route("history1vs1") +public class History1vs1View extends VerticalLayout { + public History1vs1View(Ergebnis1vs1Repository repo) { + setSizeFull(); + H2 subheading = new H2("Spiele 1 vs 1"); + List res = repo.findAll(); + Grid grid = new Grid<>(Ergebnis1vs1.class); + + grid.setItems(res); + grid.removeColumnByKey("id"); + + Grid.Column winnerColumn = grid.getColumnByKey("gewinner"); + winnerColumn.setHeader("Gewinner"); + Grid.Column loserColumn = grid.getColumnByKey("verlierer"); + loserColumn.setHeader("Verlierer"); + Grid.Column goals = grid.getColumnByKey("toreVerlierer"); + goals.setHeader("Verlierertore"); + Grid.Column timestamp = grid.getColumnByKey("timestamp"); + timestamp.setHeader("Zeitpunkt"); + timestamp.setRenderer(new LocalDateTimeRenderer<>(Ergebnis1vs1::getTimestamp, "dd.MM.yy HH:mm")); + + grid.setColumnOrder(winnerColumn, loserColumn, goals, timestamp); + GridSortOrder sortOrder = new GridSortOrder<>(timestamp, SortDirection.DESCENDING); + grid.sort(List.of(sortOrder)); + add(subheading, grid); + + + } +} diff --git a/src/main/java/org/kickerelo/kickerelo/views/History2vs2View.java b/src/main/java/org/kickerelo/kickerelo/views/History2vs2View.java new file mode 100644 index 0000000..e23b7c4 --- /dev/null +++ b/src/main/java/org/kickerelo/kickerelo/views/History2vs2View.java @@ -0,0 +1,45 @@ +package org.kickerelo.kickerelo.views; + +import com.vaadin.flow.component.grid.Grid; +import com.vaadin.flow.component.grid.GridSortOrder; +import com.vaadin.flow.component.html.H2; +import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.data.provider.SortDirection; +import com.vaadin.flow.data.renderer.LocalDateTimeRenderer; +import com.vaadin.flow.router.Route; +import org.kickerelo.kickerelo.data.Ergebnis2vs2; +import org.kickerelo.kickerelo.repository.Ergebnis2vs2Repository; + +import java.util.List; + +@Route("history2vs2") +public class History2vs2View extends VerticalLayout { + public History2vs2View(Ergebnis2vs2Repository repo) { + setSizeFull(); + H2 subheading = new H2("Spiele 2 vs 2"); + List res = repo.findAll(); + Grid grid = new Grid<>(Ergebnis2vs2.class); + + grid.setItems(res); + grid.removeColumnByKey("id"); + + Grid.Column winnerFront = grid.getColumnByKey("gewinnerVorn"); + winnerFront.setHeader("Gewinner vorne"); + Grid.Column winnerBack = grid.getColumnByKey("gewinnerHinten"); + winnerBack.setHeader("Gewinner hinten"); + Grid.Column loserFront = grid.getColumnByKey("verliererVorn"); + loserFront.setHeader("Verlierer vorne"); + Grid.Column loserBack = grid.getColumnByKey("verliererHinten"); + loserBack.setHeader("Verlierer hinten"); + Grid.Column goals = grid.getColumnByKey("toreVerlierer"); + goals.setHeader("Verlierertore"); + Grid.Column timestamp = grid.getColumnByKey("timestamp"); + timestamp.setHeader("Zeitpunkt"); + timestamp.setRenderer(new LocalDateTimeRenderer<>(Ergebnis2vs2::getTimestamp, "dd.MM.yy HH:mm")); + + grid.setColumnOrder(winnerFront, winnerBack, loserFront, loserBack, goals, timestamp); + GridSortOrder sortOrder = new GridSortOrder<>(timestamp, SortDirection.DESCENDING); + grid.sort(List.of(sortOrder)); + add(subheading, grid); + } +}