From bab7fa43659278b924e4b660718c35f8aad1632c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20M=C3=BC=C3=9Feler?= Date: Mon, 18 Dec 2017 12:03:46 +0100 Subject: [PATCH] bug3484 get flights from race log within a exact series fix --- .../domain/common/dto/PairingListDTO.java | 11 +++++ .../PairingListCreationDialog.java | 2 - .../sailing/gwt/ui/client/SailingService.java | 2 +- .../gwt/ui/client/SailingServiceAsync.java | 3 +- .../PairingListContextDefinition.java | 19 +------ .../ui/pairinglist/PairingListEntryPoint.java | 11 +---- .../gwt/ui/server/SailingServiceImpl.java | 49 ++++++++++++------- 7 files changed, 48 insertions(+), 49 deletions(-) diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/PairingListDTO.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/PairingListDTO.java index 69f96ce422a..4b69f2327d6 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/PairingListDTO.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/PairingListDTO.java @@ -12,10 +12,17 @@ public class PairingListDTO implements Serializable{ private List>>> pairingList; + private List raceColumnNames; + public PairingListDTO() { } public PairingListDTO(List>>> result) { + this(result, null); + } + + public PairingListDTO(List>>> result, List raceColumnNames) { this.pairingList = result; + this.raceColumnNames = raceColumnNames; } public List>>> getPairingList() { @@ -35,4 +42,8 @@ public class PairingListDTO implements Serializable{ return boats; } + + public List getRaceColumnNames() { + return raceColumnNames; + } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/PairingListCreationDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/PairingListCreationDialog.java index f1282482e32..90d0e0524e6 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/PairingListCreationDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/PairingListCreationDialog.java @@ -215,8 +215,6 @@ public class PairingListCreationDialog extends DataEntryDialog createLinkParameters() { Map result = new HashMap<>(); result.put("leaderboardName", leaderboardDTO.getName()); - result.put("flightMultiplier", String.valueOf(template.getFlightMultiplier())); - result.put("selectedFlights", String.join(",", template.getSelectedFlightNames())); return result; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index c4923892219..65966cc1aed 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -703,7 +703,7 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS PairingListDTO getPairingListFromTemplate(final String leaderboardName, final int flightMultiplier, final Iterable selectedFlightNames) throws NotFoundException; - PairingListDTO getPairingListFromRaceLogs(final String leaderboardName, final Iterable selectedFlightNames) throws NotFoundException; + PairingListDTO getPairingListFromRaceLogs(final String leaderboardName) throws NotFoundException; void fillRaceLogsFromPairingListTemplate(final String leaderboardName, final int flightMultiplier, final Iterable selectedFlightNames) throws NotFoundException, CompetitorRegistrationOnRaceLogDisabledException; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index e126101bcd7..88cfdf823d5 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -916,8 +916,7 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan * @param callback * returns a {@link PairingListDTO} */ - void getPairingListFromRaceLogs(final String leaderboardName, final Iterable selectedFlightNames, - AsyncCallback callback); + void getPairingListFromRaceLogs(final String leaderboardName, AsyncCallback callback); /** * Registers all competitors of a {@link PairingList} in the respective {@link RaceColumn}s and {@link Fleet}s. diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/pairinglist/PairingListContextDefinition.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/pairinglist/PairingListContextDefinition.java index afdf74d31b2..82192c14527 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/pairinglist/PairingListContextDefinition.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/pairinglist/PairingListContextDefinition.java @@ -1,9 +1,6 @@ package com.sap.sailing.gwt.ui.pairinglist; -import java.util.Arrays; - import com.sap.sse.common.settings.generic.AbstractGenericSerializableSettings; -import com.sap.sse.common.settings.generic.IntegerSetting; import com.sap.sse.common.settings.generic.StringSetting; public class PairingListContextDefinition extends AbstractGenericSerializableSettings { @@ -11,33 +8,19 @@ public class PairingListContextDefinition extends AbstractGenericSerializableSet private static final long serialVersionUID = 6206953942932913058L; private transient StringSetting leaderboardName; - private transient IntegerSetting flightMultiplier; - private transient StringSetting selectedFlightNames; public PairingListContextDefinition() { } - public PairingListContextDefinition(String leaderboardName, int flightMultiplier, String selectedFlightNames) { + public PairingListContextDefinition(String leaderboardName) { this.leaderboardName.setValue(leaderboardName); - this.flightMultiplier.setValue(flightMultiplier); - this.selectedFlightNames.setValue(selectedFlightNames); } @Override protected void addChildSettings() { this.leaderboardName = new StringSetting("leaderboardName", this); - this.flightMultiplier = new IntegerSetting("flightMultiplier", this); - this.selectedFlightNames = new StringSetting("selectedFlights", this); } public String getLeaderboardName() { return this.leaderboardName.getValue(); } - - public int getFlightMultiplier() { - return this.flightMultiplier.getValue(); - } - - public Iterable getSelectedFlightNames() { - return Arrays.asList(selectedFlightNames.getValue().split(",")); - } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/pairinglist/PairingListEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/pairinglist/PairingListEntryPoint.java index 2d7819eb238..029c6a400e1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/pairinglist/PairingListEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/pairinglist/PairingListEntryPoint.java @@ -26,7 +26,6 @@ import com.sap.sailing.gwt.common.authentication.SAPSailingHeaderWithAuthenticat import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sse.common.Color; -import com.sap.sse.common.Util; import com.sap.sse.common.Util.Pair; import com.sap.sse.gwt.settings.SettingsToUrlSerializer; @@ -70,13 +69,7 @@ public class PairingListEntryPoint extends AbstractSailingEntryPoint { scrollPanel.add(contentPanel); sailingService.getPairingListFromRaceLogs(pairingListContextDefinition.getLeaderboardName(), - pairingListContextDefinition.getSelectedFlightNames(), new AsyncCallback() { - - /* - sailingService.getPairingListFromTemplate(pairingListContextDefinition.getLeaderboardName(), - pairingListContextDefinition.getFlightMultiplier(), - pairingListContextDefinition.getSelectedFlightNames(), new AsyncCallback() { - */ + new AsyncCallback() { @Override public void onSuccess(PairingListDTO result) { @@ -139,7 +132,7 @@ public class PairingListEntryPoint extends AbstractSailingEntryPoint { // setting up race int currentRaceInGridCells = (((flightIndexInGrid - 1) * groupCount) + 1); pairingListGrid.setWidget(currentRaceInGridCells, 0, - new Label(Util.get(pairingListContextDefinition.getSelectedFlightNames(), flightIndexInGrid - 1))); + new Label(pairingListDTO.getRaceColumnNames().get(flightIndexInGrid - 1))); pairingListGrid.getCellFormatter().getElement(currentRaceInGridCells, 0).getStyle().setPadding(5, Unit.PX); pairingListGrid.getCellFormatter().getElement(currentRaceInGridCells, 0).getStyle() diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 871c3d6fb36..5de7ae15326 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -6888,18 +6888,20 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public PairingListDTO getPairingListFromRaceLogs(String leaderboardName, final Iterable selectedFlightNames) throws NotFoundException { + public PairingListDTO getPairingListFromRaceLogs(String leaderboardName) throws NotFoundException { Leaderboard leaderboard = getLeaderboardByName(leaderboardName); List>>> result = new ArrayList<>(); ColorMap colorMap = new ColorMapImpl(); + List raceColumnNames = new ArrayList<>(); + List boats = new ArrayList<>(); int boatIndex; for (RaceColumn raceColumn : leaderboard.getRaceColumns()) { - if (raceColumn.isMedalRace() || !Util.contains(selectedFlightNames, raceColumn.getName())) { + if (raceColumn.isMedalRace()) { continue; } List>> flights = new ArrayList<>(); @@ -6908,26 +6910,39 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S List> fleets = new ArrayList<>(); - // TODO fetch Pair of competitor and boat from race log (bug2822) - for (CompetitorDTO competitorDTO : this.getCompetitorRegistrationsInRaceLog(leaderboardName, - raceColumn.getName(), fleetElement.getName())) { - if (boats.size() <= boatIndex) { - // TODO change competitor name to competitor shorthand symbol (bug2822) - BoatDTO boatDTO = new BoatDTO("Boat " + String.valueOf(boatIndex + 1), competitorDTO.getSailID()); - boatDTO.setColor(colorMap.getColorByID(boatDTO)); - boats.add(boatDTO); + Collection competitorsInRaceLog = this.getCompetitorRegistrationsInRaceLog(leaderboardName, + raceColumn.getName(), fleetElement.getName()); + + if (competitorsInRaceLog.size() > 0) { + + // TODO fetch Pair of competitor and boat from race log (bug2822) + for (CompetitorDTO competitorDTO : competitorsInRaceLog) { + if (boats.size() <= boatIndex) { + // TODO change competitor name to competitor shorthand symbol (bug2822) + BoatDTO boatDTO = new BoatDTO("Boat " + String.valueOf(boatIndex + 1), competitorDTO.getSailID()); + boatDTO.setColor(colorMap.getColorByID(boatDTO)); + boats.add(boatDTO); + } + + fleets.add(new Pair(competitorDTO, boats.get(boatIndex))); + + boatIndex++; } - - fleets.add(new Pair(competitorDTO, boats.get(boatIndex))); - - boatIndex++; + flights.add(fleets); + } else { + break; + } + } + if (flights.size() > 0) { + result.add(flights); + + if (!raceColumnNames.contains(raceColumn.getName())) { + raceColumnNames.add(raceColumn.getName()); } - flights.add(fleets); } - result.add(flights); } - return new PairingListDTO(result); + return new PairingListDTO(result, raceColumnNames); } @Override