Merge branch 'bug3484' of ssh://trac@sapsailing.com/home/trac/git into bug3484

This commit is contained in:
Robin Kuck committed 2017-12-18 13:16:43 +01:00
commit 1e861f2a93
7 files changed
+48 -49

No files matched your search

@@ -12,10 +12,17 @@ public class PairingListDTO implements Serializable{
private List<List<List<Pair<CompetitorDTO, BoatDTO>>>> pairingList;
private List<String> raceColumnNames;
public PairingListDTO() { }
public PairingListDTO(List<List<List<Pair<CompetitorDTO, BoatDTO>>>> result) {
this(result, null);
}
public PairingListDTO(List<List<List<Pair<CompetitorDTO, BoatDTO>>>> result, List<String> raceColumnNames) {
this.pairingList = result;
this.raceColumnNames = raceColumnNames;
}
public List<List<List<Pair<CompetitorDTO, BoatDTO>>>> getPairingList() {
@@ -35,4 +42,8 @@ public class PairingListDTO implements Serializable{
return boats;
}
public List<String> getRaceColumnNames() {
return raceColumnNames;
}
}
@@ -206,8 +206,6 @@ public class PairingListCreationDialog extends DataEntryDialog<PairingListTempla
private Map<String, String> createLinkParameters() {
Map<String, String> result = new HashMap<>();
result.put("leaderboardName", leaderboardDTO.getName());
result.put("flightMultiplier", String.valueOf(template.getFlightMultiplier()));
result.put("selectedFlights", String.join(",", template.getSelectedFlightNames()));
return result;
}
@@ -703,7 +703,7 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS
PairingListDTO getPairingListFromTemplate(final String leaderboardName, final int flightMultiplier, final Iterable<String> selectedFlightNames)
throws NotFoundException;
PairingListDTO getPairingListFromRaceLogs(final String leaderboardName, final Iterable<String> selectedFlightNames) throws NotFoundException;
PairingListDTO getPairingListFromRaceLogs(final String leaderboardName) throws NotFoundException;
void fillRaceLogsFromPairingListTemplate(final String leaderboardName, final int flightMultiplier, final Iterable<String> selectedFlightNames)
throws NotFoundException, CompetitorRegistrationOnRaceLogDisabledException;
@@ -916,8 +916,7 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan
* @param callback
* returns a {@link PairingListDTO}
*/
void getPairingListFromRaceLogs(final String leaderboardName, final Iterable<String> selectedFlightNames,
AsyncCallback<PairingListDTO> callback);
void getPairingListFromRaceLogs(final String leaderboardName, AsyncCallback<PairingListDTO> callback);
/**
* Registers all competitors of a {@link PairingList} in the respective {@link RaceColumn}s and {@link Fleet}s.
@@ -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<String> getSelectedFlightNames() {
return Arrays.asList(selectedFlightNames.getValue().split(","));
}
}
@@ -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<PairingListDTO>() {
/*
sailingService.getPairingListFromTemplate(pairingListContextDefinition.getLeaderboardName(),
pairingListContextDefinition.getFlightMultiplier(),
pairingListContextDefinition.getSelectedFlightNames(), new AsyncCallback<PairingListDTO>() {
*/
new AsyncCallback<PairingListDTO>() {
@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()
@@ -6888,18 +6888,20 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
}
@Override
public PairingListDTO getPairingListFromRaceLogs(String leaderboardName, final Iterable<String> selectedFlightNames) throws NotFoundException {
public PairingListDTO getPairingListFromRaceLogs(String leaderboardName) throws NotFoundException {
Leaderboard leaderboard = getLeaderboardByName(leaderboardName);
List<List<List<Pair<CompetitorDTO, BoatDTO>>>> result = new ArrayList<>();
ColorMap<BoatDTO> colorMap = new ColorMapImpl<BoatDTO>();
List<String> raceColumnNames = new ArrayList<>();
List<BoatDTO> boats = new ArrayList<>();
int boatIndex;
for (RaceColumn raceColumn : leaderboard.getRaceColumns()) {
if (raceColumn.isMedalRace() || !Util.contains(selectedFlightNames, raceColumn.getName())) {
if (raceColumn.isMedalRace()) {
continue;
}
List<List<Pair<CompetitorDTO, BoatDTO>>> flights = new ArrayList<>();
@@ -6908,26 +6910,39 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
List<Pair<CompetitorDTO, BoatDTO>> 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<CompetitorDTO> 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, BoatDTO>(competitorDTO, boats.get(boatIndex)));
boatIndex++;
}
fleets.add(new Pair<CompetitorDTO, BoatDTO>(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