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 1e684fa335c..b6800266ae4 100755 --- 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 @@ -1308,6 +1308,7 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String errorRemovingSupressedPassing(String message); String errorTryingToObtainMarkPassing(String message); String errorTryingToObtainRaceLogMarkPassingData(String message); + String warningMarkPassingChangesNoEffect(); String email(); String pleaseEnterAnEmail(); String inviteCompetitors(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index e73265e7f9b..1f9fb886440 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -1300,6 +1300,7 @@ errorSuppressingPassing=Error suppressing mark passings: {0} errorRemovingSupressedPassing=Error removing suppressed mark passings: {0} errorTryingToObtainMarkPassing=Error trying to obtain mark passings: {0} errorTryingToObtainRaceLogMarkPassingData=Error trying to obtain race log mark passing data: {0} +warningMarkPassingChangesNoEffect=Warning: Race is not backed by internal mark passing algorithm. Changes will have no effect! email=E-Mail pleaseEnterAnEmail=Please enter an E-Mail. inviteCompetitors=Invite competitors 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 30c7aa22b13..09f3fe9aaf4 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 @@ -1281,6 +1281,7 @@ errorSuppressingPassing=Fehler beim Unterdrücken von Umrundungen: {0} errorRemovingSupressedPassing=Fehler beim Entfernen von unterdrückten Umrundungen: {0} errorTryingToObtainMarkPassing=Fehler beim Laden der Umrundungszeiten: {0} errorTryingToObtainRaceLogMarkPassingData=Fehler beim Laden der Umrundungsinformation aus dem RaceLog: {0} +warningMarkPassingChangesNoEffect=Warnung: Das Rennen wird nicht vom internen Umrundungsalgorithmus getrackt. Änderungen haben keinen Effekt! email=E-Mail pleaseEnterAnEmail=Bitte geben Sie eine E-Mail ein. inviteCompetitors=Teilnehmer einladen diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/EditMarkPassingsPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/EditMarkPassingsPanel.java index 8e938495f61..72f34aaec7b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/EditMarkPassingsPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/EditMarkPassingsPanel.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.function.Predicate; import com.google.gwt.cell.client.AbstractCell; import com.google.gwt.event.dom.client.ClickEvent; @@ -19,6 +20,7 @@ import com.google.gwt.user.cellview.client.Column; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.AbsolutePanel; import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.HasVerticalAlignment; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.VerticalPanel; @@ -179,10 +181,11 @@ public class EditMarkPassingsPanel extends AbstractCompositeComponent selectedObject = waypointSelectionModel.getSelectedObject(); sailingService.updateFixedMarkPassing(leaderboardNameRaceColumnNameAndFleetName.getLeaderboardName(), leaderboardNameRaceColumnNameAndFleetName.getRaceColumnName(), leaderboardNameRaceColumnNameAndFleetName.getFleetName(), - waypointSelectionModel.getSelectedObject().getA(), null, competitor, new AsyncCallback() { + selectedObject.getA(), null, competitor, new AsyncCallback() { @Override public void onFailure(Throwable caught) { errorReporter.reportError(stringMessages.errorRemovingFixedPassing(caught.getMessage())); @@ -190,7 +193,10 @@ public class EditMarkPassingsPanel extends AbstractCompositeComponent { + return map.containsKey(selectedObject.getA()) + && !map.get(selectedObject.getA()).equals(selectedObject.getB()); + }, 1); } }); } @@ -264,6 +270,18 @@ public class EditMarkPassingsPanel extends AbstractCompositeComponent() { + @Override + public void onSuccess(Boolean result) { + warningChangesHaveNoEffect.setVisible(!result); + } + @Override + public void onFailure(Throwable caught) { + } + }); selectCompetitorLabel.setText(stringMessages.selectCompetitor()); refreshWaypoints(); AbsolutePanel rootPanel = new AbsolutePanel(); @@ -281,6 +299,8 @@ public class EditMarkPassingsPanel extends AbstractCompositeComponent { + return map.containsKey(waypoint) && map.get(waypoint).equals(time); + }, 1); } }); } else { @@ -369,10 +391,17 @@ public class EditMarkPassingsPanel extends AbstractCompositeComponent= 1}. + * @param triesLeft number of times to call {@link #refillList(Predicate, int)} again excluding this call. + */ + private void refillList(Predicate> resultValidator, int triesLeft) { + boolean waitForCalculations = resultValidator != null; clearInfo(); competitor = competitorSelectionModel.getSelectedCompetitors().iterator().next(); // Get current mark passings @@ -418,6 +447,10 @@ public class EditMarkPassingsPanel extends AbstractCompositeComponent 0) { + refillList(resultValidator, triesLeft - 1); + } } }); }