mirror of
https://github.com/AJMicke/KickerELO.git
synced 2026-03-11 13:31:02 +01:00
Add dummy chart
This commit is contained in:
15
pom.xml
15
pom.xml
@@ -22,6 +22,16 @@
|
||||
<vaadin.version>24.6.4</vaadin.version>
|
||||
</properties>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>Vaadin Directory</id>
|
||||
<url>https://maven.vaadin.com/vaadin-addons</url>
|
||||
<snapshots>
|
||||
<enabled>false</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
@@ -31,6 +41,11 @@
|
||||
<groupId>com.vaadin</groupId>
|
||||
<artifactId>vaadin-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.appreciated</groupId>
|
||||
<artifactId>apexcharts</artifactId>
|
||||
<version>24.0.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.mariadb.jdbc</groupId>
|
||||
|
||||
@@ -13,6 +13,8 @@ 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;
|
||||
|
||||
@Layout
|
||||
public class KickerAppLayout extends AppLayout {
|
||||
@@ -27,8 +29,10 @@ public class KickerAppLayout extends AppLayout {
|
||||
|
||||
RouterLink enter1vs1 = new RouterLink("1 vs 1", Enter1vs1View.class);
|
||||
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);
|
||||
|
||||
Tabs tabs = new Tabs(new Tab(enter1vs1), new Tab(enter2vs2));
|
||||
Tabs tabs = new Tabs(new Tab(enter1vs1), new Tab(enter2vs2), new Tab(playerList), new Tab(graph1vs1));
|
||||
tabs.setOrientation(Tabs.Orientation.VERTICAL);
|
||||
addToDrawer(tabs);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import org.kickerelo.kickerelo.data.Spieler;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Repository
|
||||
|
||||
@@ -11,6 +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.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -28,7 +29,11 @@ public class KickerEloService {
|
||||
private EloCalculationService eloCalculationService;
|
||||
|
||||
public List<String> getSpielerNamen() {
|
||||
return spielerRepository.findAll().stream().map(Spieler::getName).toList();
|
||||
return spielerRepository.findAll().stream().map(Spieler::getName).sorted().toList();
|
||||
}
|
||||
|
||||
public List<Spieler> getSpielerEntities() {
|
||||
return spielerRepository.findAll().stream().sorted(new SpielerEloComparator()).toList();
|
||||
}
|
||||
|
||||
public void enterResult1vs1(String gewinnerName, String verliererName,
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package org.kickerelo.kickerelo.util;
|
||||
|
||||
import org.kickerelo.kickerelo.data.Spieler;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
public class SpielerEloComparator implements Comparator<Spieler> {
|
||||
@Override
|
||||
public int compare(Spieler o1, Spieler o2) {
|
||||
return Float.compare(o1.getElo(), o2.getElo());
|
||||
}
|
||||
}
|
||||
23
src/main/java/org/kickerelo/kickerelo/views/Chart1vs1.java
Normal file
23
src/main/java/org/kickerelo/kickerelo/views/Chart1vs1.java
Normal file
@@ -0,0 +1,23 @@
|
||||
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 java.math.BigDecimal;
|
||||
|
||||
public class Chart1vs1 extends ApexChartsBuilder {
|
||||
public Chart1vs1() {
|
||||
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());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package org.kickerelo.kickerelo.views;
|
||||
|
||||
import com.github.appreciated.apexcharts.ApexChartsBuilder;
|
||||
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
|
||||
import com.vaadin.flow.router.Route;
|
||||
|
||||
@Route("graph1vs1")
|
||||
public class Graph1vs1View extends VerticalLayout {
|
||||
ApexChartsBuilder chart1vs1 = new Chart1vs1();
|
||||
public Graph1vs1View() {
|
||||
add(chart1vs1.build());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
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.router.Route;
|
||||
import org.kickerelo.kickerelo.data.Spieler;
|
||||
import org.kickerelo.kickerelo.service.KickerEloService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Route("playerlist")
|
||||
public class PlayerListView extends VerticalLayout {
|
||||
public PlayerListView(KickerEloService eloService) {
|
||||
H2 subheading = new H2("Spielerliste");
|
||||
|
||||
List<Spieler> players = eloService.getSpielerEntities();
|
||||
Grid<Spieler> playerGrid = new Grid<>(Spieler.class);
|
||||
|
||||
playerGrid.setItems(players);
|
||||
playerGrid.removeColumnByKey("id");
|
||||
playerGrid.removeColumnByKey("elo_alt");
|
||||
Grid.Column<Spieler> nameColumn = playerGrid.getColumnByKey("name");
|
||||
Grid.Column<Spieler> eloColumn = playerGrid.getColumnByKey("elo");
|
||||
nameColumn.setHeader("Name");
|
||||
eloColumn.setHeader("Elo");
|
||||
|
||||
playerGrid.setColumnOrder(nameColumn, eloColumn);
|
||||
|
||||
GridSortOrder<Spieler> sortOrder = new GridSortOrder<>(eloColumn, SortDirection.DESCENDING);
|
||||
playerGrid.sort(List.of(sortOrder));
|
||||
add(subheading, playerGrid);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user