diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java index 949fe3206cc..ccf8194ccd0 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java @@ -235,36 +235,30 @@ public abstract class AbstractLeaderboardConfigPanel extends FormPanel implement @Override public void onSelectionChange(SelectionChangeEvent event) { Set selectedRaces = refreshableTrackedRaceSelectionModel.getSelectedSet(); - + RaceDTO selectedRace = selectedRaces.iterator().next(); + RaceColumnDTOAndFleetDTOWithNameBasedEquality selectedRaceColumnAndFleetName = getSelectedRaceColumnWithFleet(); - - RaceDTO linkedRaceOfSelectedRaceColumn = selectedRaceColumnAndFleetName.getA().getRace(selectedRaceColumnAndFleetName.getB()); - - GWT.log(linkedRaceOfSelectedRaceColumn.getRaceIdentifier().toString()); - + RaceColumnDTO selectedRaceColumn = selectedRaceColumnAndFleetName.getA(); + FleetDTO selectedRaceColumnFleet = selectedRaceColumnAndFleetName.getB(); + if (selectedRaceColumnAndFleetName != null) { if (selectedRaces.isEmpty()) { if (hasLink(selectedRaceColumnAndFleetName)) { - unlinkRaceColumnFromTrackedRace(selectedRaceColumnAndFleetName.getA().getRaceColumnName(), - selectedRaceColumnAndFleetName.getB()); + unlinkRaceColumnFromTrackedRace(selectedRaceColumn.getRaceColumnName(), + selectedRaceColumnFleet); } } else { - RaceDTO newSelectedRace = selectedRaces.iterator().next(); - - if(hasLink(selectedRaceColumnAndFleetName) && !isLinkedToRace(selectedRaceColumnAndFleetName, newSelectedRace)){ - if (Window.confirm("Do you really want to change the link?")){ - linkTrackedRaceToSelectedRaceColumn(selectedRaceColumnAndFleetName.getA(), - selectedRaceColumnAndFleetName.getB(), - selectedRaces.iterator().next().getRaceIdentifier()); - } - else{ + if (hasLink(selectedRaceColumnAndFleetName) + && !isLinkedToRace(selectedRaceColumnAndFleetName, selectedRace)) { + if (Window.confirm(stringMessages.trackedRaceAlreadyLinked())) { + linkTrackedRaceToSelectedRaceColumn(selectedRaceColumn, selectedRaceColumnFleet, + selectedRace.getRaceIdentifier()); + } else { selectTrackedRaceInRaceList(); } - } - else{ - linkTrackedRaceToSelectedRaceColumn(selectedRaceColumnAndFleetName.getA(), - selectedRaceColumnAndFleetName.getB(), - selectedRaces.iterator().next().getRaceIdentifier()); + } else { + linkTrackedRaceToSelectedRaceColumn(selectedRaceColumn, selectedRaceColumnFleet, + selectedRace.getRaceIdentifier()); } } } @@ -275,11 +269,12 @@ public abstract class AbstractLeaderboardConfigPanel extends FormPanel implement .getRaceIdentifier(selectedRaceColumnAndFleetName.getB()) != null; } - private boolean isLinkedToRace(RaceColumnDTOAndFleetDTOWithNameBasedEquality selectedRaceColumnAndFleetName, RaceDTO race){ - return selectedRaceColumnAndFleetName.getA().getRaceIdentifier(selectedRaceColumnAndFleetName.getB()).equals(race.getRaceIdentifier()); + private boolean isLinkedToRace(RaceColumnDTOAndFleetDTOWithNameBasedEquality selectedRaceColumnAndFleetName, RaceDTO selectedRace){ + return selectedRaceColumnAndFleetName.getA().getRaceIdentifier(selectedRaceColumnAndFleetName.getB()).equals(selectedRace.getRaceIdentifier()); } }; + trackedRaceListHandlerRegistration = refreshableTrackedRaceSelectionModel.addSelectionChangeHandler(trackedRaceListHandler); Button reloadAllRaceLogs = new Button(stringMessages.reloadAllRaceLogs()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index d88e9613644..56fe9d49912 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -1808,4 +1808,5 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String useOnlyOneOfStartTimeInferenceAndControlTrackingFromStartAndFinishTimes(); String unknownLeaderboardType(String name); String selectCompetitorsToEliminate(); + String trackedRaceAlreadyLinked(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index b3e4a195fb6..5ed8280cacd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -1769,4 +1769,5 @@ settingsSaveErrorMessage=Bei dem Versuch, Ihre aktuellen Einstellungen als Vorei showLiveNow="Jetzt live" anzeigen useOnlyOneOfStartTimeInferenceAndControlTrackingFromStartAndFinishTimes=Höchstens eine der Einstellungen "Startzeit aus Startlinienüberquerungen automatisch ableiten" und "Tracking durch Start- und Ende-Zeiten automatisch steuern" darf ausgewählt sein unknownLeaderboardType=Unbekannter Ranglistentyp {0} -selectCompetitorsToEliminate=Zu eliminierende Teilnehmer auswählen \ No newline at end of file +selectCompetitorsToEliminate=Zu eliminierende Teilnehmer auswählen +trackedRaceAlreadyLinked=Das Rennen ist bereits mit einer Renn-Spalte verlinkt. Wollen Sie die Verbindung wirklich ändern? \ No newline at end of file