mirror of
https://github.com/AJMicke/KickerELO.git
synced 2026-03-11 13:31:02 +01:00
Add working ELO graphs
This commit is contained in:
@@ -11,10 +11,7 @@ import com.vaadin.flow.router.Layout;
|
||||
import com.vaadin.flow.router.Route;
|
||||
import com.vaadin.flow.router.RouterLink;
|
||||
import com.vaadin.flow.theme.lumo.LumoUtility;
|
||||
import org.kickerelo.kickerelo.views.Enter1vs1View;
|
||||
import org.kickerelo.kickerelo.views.Enter2vs2View;
|
||||
import org.kickerelo.kickerelo.views.Graph1vs1View;
|
||||
import org.kickerelo.kickerelo.views.PlayerListView;
|
||||
import org.kickerelo.kickerelo.views.*;
|
||||
|
||||
@Layout
|
||||
public class KickerAppLayout extends AppLayout {
|
||||
@@ -31,8 +28,11 @@ public class KickerAppLayout extends AppLayout {
|
||||
RouterLink enter2vs2 = new RouterLink("2 vs 2", Enter2vs2View.class);
|
||||
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);
|
||||
|
||||
Tabs tabs = new Tabs(new Tab(enter1vs1), new Tab(enter2vs2), new Tab(playerList), new Tab(graph1vs1));
|
||||
|
||||
|
||||
Tabs tabs = new Tabs(new Tab(enter1vs1), new Tab(enter2vs2), new Tab(playerList), new Tab(graph1vs1), new Tab(graph2vs2));
|
||||
tabs.setOrientation(Tabs.Orientation.VERTICAL);
|
||||
addToDrawer(tabs);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import org.kickerelo.kickerelo.model.ResultInfo2vs2;
|
||||
import org.kickerelo.kickerelo.repository.Ergebnis1vs1Repository;
|
||||
import org.kickerelo.kickerelo.repository.Ergebnis2vs2Repository;
|
||||
import org.kickerelo.kickerelo.repository.SpielerRepository;
|
||||
import org.kickerelo.kickerelo.util.SpielerEloComparator;
|
||||
import org.kickerelo.kickerelo.util.Spieler1vs1EloComparator;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -33,7 +33,7 @@ public class KickerEloService {
|
||||
}
|
||||
|
||||
public List<Spieler> getSpielerEntities() {
|
||||
return spielerRepository.findAll().stream().sorted(new SpielerEloComparator()).toList();
|
||||
return spielerRepository.findAll().stream().sorted(new Spieler1vs1EloComparator()).toList();
|
||||
}
|
||||
|
||||
public void enterResult1vs1(String gewinnerName, String verliererName,
|
||||
|
||||
@@ -4,7 +4,7 @@ import org.kickerelo.kickerelo.data.Spieler;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
public class SpielerEloComparator implements Comparator<Spieler> {
|
||||
public class Spieler1vs1EloComparator implements Comparator<Spieler> {
|
||||
@Override
|
||||
public int compare(Spieler o1, Spieler o2) {
|
||||
return Float.compare(o1.getElo1vs1(), o2.getElo1vs1());
|
||||
@@ -0,0 +1,12 @@
|
||||
package org.kickerelo.kickerelo.util;
|
||||
|
||||
import org.kickerelo.kickerelo.data.Spieler;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
public class Spieler2vs2EloComparator implements Comparator<Spieler> {
|
||||
@Override
|
||||
public int compare(Spieler o1, Spieler o2) {
|
||||
return Float.compare(o1.getElo2vs2(), o2.getElo2vs2());
|
||||
}
|
||||
}
|
||||
@@ -8,16 +8,20 @@ import com.github.appreciated.apexcharts.config.chart.Type;
|
||||
import com.github.appreciated.apexcharts.config.chart.builder.ZoomBuilder;
|
||||
import com.github.appreciated.apexcharts.config.chart.zoom.ZoomType;
|
||||
import com.github.appreciated.apexcharts.helper.Series;
|
||||
import org.kickerelo.kickerelo.data.Spieler;
|
||||
import org.kickerelo.kickerelo.util.Spieler1vs1EloComparator;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
public class Chart1vs1 extends ApexChartsBuilder {
|
||||
public Chart1vs1() {
|
||||
public Chart1vs1(List<Spieler> l) {
|
||||
withChart(ChartBuilder.get().withType(Type.SCATTER)
|
||||
.withZoom(ZoomBuilder.get().withEnabled(true).withType(ZoomType.XY).build()).build())
|
||||
.withSeries(new Series<>("ELO",
|
||||
new BigDecimal[]{new BigDecimal(1), new BigDecimal(3)},
|
||||
new BigDecimal[]{new BigDecimal(2), new BigDecimal(4)}))
|
||||
.withXaxis(XAxisBuilder.get().build()).withYaxis(YAxisBuilder.get().build());
|
||||
l.stream().sorted(new Spieler1vs1EloComparator()).map(Spieler::getElo1vs1).toArray()
|
||||
))
|
||||
.withXaxis(XAxisBuilder.get().withCategories(l.stream().sorted(new Spieler1vs1EloComparator()).map(Spieler::getName).toList()).build())
|
||||
.withYaxis(YAxisBuilder.get().build());
|
||||
}
|
||||
}
|
||||
|
||||
26
src/main/java/org/kickerelo/kickerelo/views/Chart2vs2.java
Normal file
26
src/main/java/org/kickerelo/kickerelo/views/Chart2vs2.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package org.kickerelo.kickerelo.views;
|
||||
|
||||
import com.github.appreciated.apexcharts.ApexChartsBuilder;
|
||||
import com.github.appreciated.apexcharts.config.builder.ChartBuilder;
|
||||
import com.github.appreciated.apexcharts.config.builder.XAxisBuilder;
|
||||
import com.github.appreciated.apexcharts.config.builder.YAxisBuilder;
|
||||
import com.github.appreciated.apexcharts.config.chart.Type;
|
||||
import com.github.appreciated.apexcharts.config.chart.builder.ZoomBuilder;
|
||||
import com.github.appreciated.apexcharts.config.chart.zoom.ZoomType;
|
||||
import com.github.appreciated.apexcharts.helper.Series;
|
||||
import org.kickerelo.kickerelo.data.Spieler;
|
||||
import org.kickerelo.kickerelo.util.Spieler2vs2EloComparator;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class Chart2vs2 extends ApexChartsBuilder {
|
||||
public Chart2vs2(List<Spieler> l) {
|
||||
withChart(ChartBuilder.get().withType(Type.SCATTER)
|
||||
.withZoom(ZoomBuilder.get().withEnabled(true).withType(ZoomType.XY).build()).build())
|
||||
.withSeries(new Series<>("ELO",
|
||||
l.stream().sorted(new Spieler2vs2EloComparator()).map(Spieler::getElo2vs2).toArray()
|
||||
))
|
||||
.withXaxis(XAxisBuilder.get().withCategories(l.stream().sorted(new Spieler2vs2EloComparator()).map(Spieler::getName).toList()).build())
|
||||
.withYaxis(YAxisBuilder.get().build());
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,20 @@
|
||||
package org.kickerelo.kickerelo.views;
|
||||
|
||||
import com.github.appreciated.apexcharts.ApexChartsBuilder;
|
||||
import com.vaadin.flow.component.html.H2;
|
||||
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
|
||||
import com.vaadin.flow.router.Route;
|
||||
import org.kickerelo.kickerelo.service.KickerEloService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@Route("graph1vs1")
|
||||
public class Graph1vs1View extends VerticalLayout {
|
||||
ApexChartsBuilder chart1vs1 = new Chart1vs1();
|
||||
public Graph1vs1View() {
|
||||
add(chart1vs1.build());
|
||||
|
||||
ApexChartsBuilder chart1vs1;
|
||||
public Graph1vs1View(KickerEloService service) {
|
||||
H2 subheading = new H2("1 vs 1 Elo");
|
||||
chart1vs1 = new Chart1vs1(service.getSpielerEntities());
|
||||
add(chart1vs1.build(), subheading);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.kickerelo.kickerelo.views;
|
||||
|
||||
import com.github.appreciated.apexcharts.ApexChartsBuilder;
|
||||
import com.vaadin.flow.component.html.H2;
|
||||
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
|
||||
import com.vaadin.flow.router.Route;
|
||||
import org.kickerelo.kickerelo.service.KickerEloService;
|
||||
|
||||
@Route("graph2vs2")
|
||||
public class Graph2vs2View extends VerticalLayout {
|
||||
ApexChartsBuilder chart2vs2;
|
||||
public Graph2vs2View(KickerEloService service) {
|
||||
H2 subheading = new H2("2 vs 2 Elo");
|
||||
chart2vs2 = new Chart2vs2(service.getSpielerEntities());
|
||||
add(chart2vs2.build(), subheading);
|
||||
}
|
||||
}
|
||||
@@ -23,13 +23,14 @@ public class PlayerListView extends VerticalLayout {
|
||||
playerGrid.removeColumnByKey("id");
|
||||
playerGrid.removeColumnByKey("elo_alt");
|
||||
Grid.Column<Spieler> nameColumn = playerGrid.getColumnByKey("name");
|
||||
Grid.Column<Spieler> eloColumn = playerGrid.getColumnByKey("elo");
|
||||
Grid.Column<Spieler> elo1vs1Column = playerGrid.getColumnByKey("elo1vs1");
|
||||
Grid.Column<Spieler> elo2vs2Column = playerGrid.getColumnByKey("elo2vs2");
|
||||
nameColumn.setHeader("Name");
|
||||
eloColumn.setHeader("Elo");
|
||||
elo1vs1Column.setHeader("Elo 1 vs 1");
|
||||
|
||||
playerGrid.setColumnOrder(nameColumn, eloColumn);
|
||||
playerGrid.setColumnOrder(nameColumn, elo1vs1Column, elo2vs2Column);
|
||||
|
||||
GridSortOrder<Spieler> sortOrder = new GridSortOrder<>(eloColumn, SortDirection.DESCENDING);
|
||||
GridSortOrder<Spieler> sortOrder = new GridSortOrder<>(elo1vs1Column, SortDirection.DESCENDING);
|
||||
playerGrid.sort(List.of(sortOrder));
|
||||
add(subheading, playerGrid);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user