From a6ae7c9557bd701f2c3c452f5013a14b3dc61e4e Mon Sep 17 00:00:00 2001 From: GAM Date: Mon, 8 Mar 2021 08:07:54 +0100 Subject: [PATCH] bold player name, more todos --- .../application/data/service/PlayerService.java | 1 + .../example/application/utils/StringUtils.java | 4 ++++ .../example/application/utils/VaadinUtils.java | 17 +++++++++++++++++ .../application/views/results/ResultsView.java | 9 ++++++--- .../application/views/table/TableView.java | 4 +++- 5 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/example/application/utils/VaadinUtils.java diff --git a/src/main/java/com/example/application/data/service/PlayerService.java b/src/main/java/com/example/application/data/service/PlayerService.java index 982df5a..cdecb3d 100644 --- a/src/main/java/com/example/application/data/service/PlayerService.java +++ b/src/main/java/com/example/application/data/service/PlayerService.java @@ -65,6 +65,7 @@ public class PlayerService extends CrudService { currentPlayer = playerForTableList.get(i); if (i>0) { lastPlayer = playerForTableList.get(i-1); + // TODO: add direct comparison below if (Objects.equals(currentPlayer.getMatchPoints(), lastPlayer.getMatchPoints()) && Objects.equals(currentPlayer.getGamePointsForSelf(), lastPlayer.getGamePointsForSelf()) && Objects.equals(currentPlayer.getGamePointsForOpponents(), lastPlayer.getGamePointsForOpponents())) { diff --git a/src/main/java/com/example/application/utils/StringUtils.java b/src/main/java/com/example/application/utils/StringUtils.java index afef226..75feb50 100644 --- a/src/main/java/com/example/application/utils/StringUtils.java +++ b/src/main/java/com/example/application/utils/StringUtils.java @@ -18,4 +18,8 @@ public class StringUtils { String string = aDouble.toString().replace(".0", ""); return aDouble > 0 ? "+" + string : string; } + + public static String getHtmlStringForPlayer(String playerName, String playerNickname) { + return String.format("%s (%s)", playerName, playerNickname); + } } diff --git a/src/main/java/com/example/application/utils/VaadinUtils.java b/src/main/java/com/example/application/utils/VaadinUtils.java new file mode 100644 index 0000000..124ab58 --- /dev/null +++ b/src/main/java/com/example/application/utils/VaadinUtils.java @@ -0,0 +1,17 @@ +package com.example.application.utils; + +import com.example.application.data.entity.Player; +import com.vaadin.flow.data.renderer.TemplateRenderer; +import com.vaadin.flow.function.ValueProvider; + +public class VaadinUtils { + private VaadinUtils() { + } + + public static TemplateRenderer getPlayerRenderer(ValueProvider playerProvider) { + return TemplateRenderer.of(StringUtils.getHtmlStringForPlayer("[[item.name]]", "[[item.nickname]]")) + .withProperty("name", (ValueProvider) source -> playerProvider.apply(source).getName()) + .withProperty("nickname", (ValueProvider) source -> playerProvider.apply(source).getNickname()); + } + +} diff --git a/src/main/java/com/example/application/views/results/ResultsView.java b/src/main/java/com/example/application/views/results/ResultsView.java index 54d08ca..024e10d 100644 --- a/src/main/java/com/example/application/views/results/ResultsView.java +++ b/src/main/java/com/example/application/views/results/ResultsView.java @@ -6,6 +6,7 @@ import com.example.application.data.service.MatchService; import com.example.application.data.service.MatchdayService; import com.example.application.data.service.SeasonService; import com.example.application.utils.StringUtils; +import com.example.application.utils.VaadinUtils; import com.example.application.views.abstractnavigation.SeasonAndMatchdayNavigationView; import com.example.application.views.main.MainView; import com.vaadin.flow.component.*; @@ -19,6 +20,7 @@ import com.vaadin.flow.component.icon.VaadinIcon; import com.vaadin.flow.component.orderedlayout.FlexComponent; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.data.renderer.TemplateRenderer; import com.vaadin.flow.function.ValueProvider; import com.vaadin.flow.router.*; import org.springframework.beans.factory.annotation.Autowired; @@ -99,7 +101,7 @@ public class ResultsView extends SeasonAndMatchdayNavigationView { } private void configureMatchdayLayout() { - getMatchdayHeader().addClassName("big_header"); +// getMatchdayHeader().addClassName("big_header"); // add dates getMatchdayLayout().setPadding(false); getMatchdayLayout().add(getMatchdayHeader(), getGrid()); @@ -111,7 +113,7 @@ public class ResultsView extends SeasonAndMatchdayNavigationView { Label headerPlayer2 = new Label("Player 2"); headerPlayer2.addClassName("column_header"); - getGrid().addColumn((ValueProvider) CalculatedMatch::getPlayer1) + getGrid().addColumn(VaadinUtils.getPlayerRenderer(CalculatedMatch::getPlayer1)) .setHeader(headerPlayer1) .setTextAlign(ColumnTextAlign.END) .setWidth("13em"); @@ -121,7 +123,7 @@ public class ResultsView extends SeasonAndMatchdayNavigationView { .setTextAlign(ColumnTextAlign.CENTER) .setWidth("6em"); - getGrid().addColumn((ValueProvider) CalculatedMatch::getPlayer2) + getGrid().addColumn(VaadinUtils.getPlayerRenderer(CalculatedMatch::getPlayer2)) .setHeader(headerPlayer2) .setTextAlign(ColumnTextAlign.START) .setWidth("13em"); @@ -136,6 +138,7 @@ public class ResultsView extends SeasonAndMatchdayNavigationView { return StringUtils.getResultString(match.getScore1(), match.getScore2()); } + ///////////// // CONTENT // ///////////// diff --git a/src/main/java/com/example/application/views/table/TableView.java b/src/main/java/com/example/application/views/table/TableView.java index 0c36581..d1daeef 100644 --- a/src/main/java/com/example/application/views/table/TableView.java +++ b/src/main/java/com/example/application/views/table/TableView.java @@ -6,6 +6,7 @@ import com.example.application.data.service.MatchdayService; import com.example.application.data.service.PlayerService; import com.example.application.data.service.SeasonService; import com.example.application.utils.StringUtils; +import com.example.application.utils.VaadinUtils; import com.example.application.views.abstractnavigation.SeasonAndMatchdayNavigationView; import com.example.application.views.main.MainView; import com.vaadin.flow.component.dependency.CssImport; @@ -58,6 +59,7 @@ public class TableView extends SeasonAndMatchdayNavigationView { @Override protected void configureContentLayout() { + // TODO: name (nicht nickname) fett, punktzahl fett contentLayout = new HorizontalLayout(getGrid()); Label headerPlace = new Label("Place"); @@ -87,7 +89,7 @@ public class TableView extends SeasonAndMatchdayNavigationView { .setTextAlign(ColumnTextAlign.CENTER) .setWidth("5em"); - getGrid().addColumn((ValueProvider) PlayerForTable::getPlayer) + getGrid().addColumn(VaadinUtils.getPlayerRenderer(PlayerForTable::getPlayer)) .setHeader(headerPlayer) .setTextAlign(ColumnTextAlign.START) .setWidth("13em");