bug5504: i18n support for NauticalSide, specifically for reporting line biases in RaceMap

This commit is contained in:
Axel Uhl committed 2021-03-23 10:41:03 +01:00
1 parent 1a3d560008
commit 587d950ff7
7 files changed
+35 -9

No files matched your search

@@ -4,6 +4,11 @@
<div id="mainContent">
<h4 class="articleHeadline">What's New - SAP Sailing Analytics</h4>
<div class="innerContent">
<h5 class="articleSubheadline">March 2021</h5>
<ul class="bulletList">
<li>Bug fix: show course middle line of first leg only if display of course middle lines is selected in settings.</li>
<li>Start/finish line biases are now correctly translated into the selected locale's display language.</li>
</ul>
<h5 class="articleSubheadline">February 2021</h5>
<ul class="bulletList">
<li>The solution now supports the new Olympic penalty code (IRM) "NSC" ("Did not sail the course").</li>
@@ -19,6 +19,5 @@ public class ManeuverTypeFormatter {
return stringMessages.unknownManeuver();
}
return null;
}
}
@@ -0,0 +1,20 @@
package com.sap.sailing.gwt.ui.client;
import com.sap.sailing.domain.common.NauticalSide;
public class NauticalSideFormatter {
public static String format(NauticalSide nauticalSide, StringMessages stringMessages) {
final String result;
switch (nauticalSide) {
case PORT:
result = stringMessages.portSide();
break;
case STARBOARD:
result = stringMessages.starboardSide();
break;
default:
result = null;
}
return result;
}
}
@@ -26,12 +26,12 @@ import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.domain.common.ManeuverType;
import com.sap.sailing.domain.common.NauticalSide;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.maneuverdetection.impl.ManeuverDetectorImpl;
import com.sap.sailing.gwt.ui.client.ManeuverTypeFormatter;
import com.sap.sailing.gwt.ui.client.NauticalSideFormatter;
import com.sap.sailing.gwt.ui.client.NumberFormatterFactory;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
@@ -394,8 +394,7 @@ public class ManeuverMarkersAndLossIndicators {
raceMap.createInfoWindowLabelAndValue(stringMessages.markPassing(),
DateTimeFormat.getFormat(PredefinedFormat.TIME_FULL).format(maneuver.getMarkPassingTimePoint())
+ (maneuver.getMarkPassingSide() == null ? ""
: " (" + (maneuver.getMarkPassingSide() == NauticalSide.PORT
? stringMessages.portSide() : stringMessages.starboardSide())
: " (" + NauticalSideFormatter.format(maneuver.getMarkPassingSide(), stringMessages)
+ ")")));
}
return vPanel;
@@ -15,6 +15,7 @@ import java.util.Objects;
import java.util.Set;
import java.util.UUID;
import java.util.function.Consumer;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
@@ -97,6 +98,7 @@ import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
import com.sap.sailing.gwt.ui.client.DetailTypeComparator;
import com.sap.sailing.gwt.ui.client.DetailTypeFormatter;
import com.sap.sailing.gwt.ui.client.NauticalSideFormatter;
import com.sap.sailing.gwt.ui.client.NumberFormatterFactory;
import com.sap.sailing.gwt.ui.client.RaceCompetitorSelectionProvider;
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProviderListener;
@@ -1970,7 +1972,7 @@ public class RaceMap extends AbstractCompositeComponent<RaceMapSettings> impleme
startLineAdvantageText.replace(0, startLineAdvantageText.length(), " "+stringMessages.lineAngleToWindAndAdvantage(
numberFormatOneDecimal.format(courseDTO.startLineLengthInMeters),
numberFormatOneDecimal.format(Math.abs(courseDTO.startLineAngleFromPortToStarboardWhenApproachingLineToCombinedWind)),
courseDTO.startLineAdvantageousSide.name().charAt(0)+courseDTO.startLineAdvantageousSide.name().substring(1).toLowerCase(),
NauticalSideFormatter.format(courseDTO.startLineAdvantageousSide, stringMessages),
numberFormatOneDecimal.format(courseDTO.startLineAdvantageInMeters)));
} else {
startLineAdvantageText.delete(0, startLineAdvantageText.length());
@@ -2004,7 +2006,7 @@ public class RaceMap extends AbstractCompositeComponent<RaceMapSettings> impleme
finishLineAdvantageText.replace(0, finishLineAdvantageText.length(), " "+stringMessages.lineAngleToWindAndAdvantage(
numberFormatOneDecimal.format(courseDTO.finishLineLengthInMeters),
numberFormatOneDecimal.format(Math.abs(courseDTO.finishLineAngleFromPortToStarboardWhenApproachingLineToCombinedWind)),
courseDTO.finishLineAdvantageousSide.name().charAt(0)+courseDTO.finishLineAdvantageousSide.name().substring(1).toLowerCase(),
NauticalSideFormatter.format(courseDTO.finishLineAdvantageousSide, stringMessages),
numberFormatOneDecimal.format(courseDTO.finishLineAdvantageInMeters)));
} else {
finishLineAdvantageText.delete(0, finishLineAdvantageText.length());
@@ -4,6 +4,7 @@ import com.google.gwt.cell.client.TextCell;
import com.sap.sailing.domain.common.DetailType;
import com.sap.sailing.domain.common.NauticalSide;
import com.sap.sailing.domain.common.dto.LeaderboardRowDTO;
import com.sap.sailing.gwt.ui.client.NauticalSideFormatter;
import com.sap.sailing.gwt.ui.client.StringMessages;
public class SideToWhichMarkAtLegStartWasRoundedColumn extends DetailTypeColumn<NauticalSide, String, LeaderboardRowDTO> {
@@ -18,6 +19,6 @@ public class SideToWhichMarkAtLegStartWasRoundedColumn extends DetailTypeColumn<
@Override
public String getValue(LeaderboardRowDTO row) {
return getField().get(row) == null ? null : getField().get(row) == NauticalSide.PORT ? stringMessages.portSide() : stringMessages.starboardSide();
return getField().get(row) == null ? null : NauticalSideFormatter.format(getField().get(row), stringMessages);
}
}
@@ -10,6 +10,7 @@ import com.sap.sailing.domain.common.ManeuverType;
import com.sap.sailing.domain.common.NauticalSide;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.Tack;
import com.sap.sailing.gwt.ui.client.NauticalSideFormatter;
import com.sap.sailing.gwt.ui.client.StringMessages;
public class ManeuverDTO implements IsSerializable {
@@ -96,8 +97,7 @@ public class ManeuverDTO implements IsSerializable {
String markPassing = getMarkPassingTimePoint() == null ? ""
: "; " + stringMessages.markPassedToAt(
this.getMarkPassingSide() == null ? ""
: this.getMarkPassingSide() == NauticalSide.PORT ? stringMessages.portSide()
: stringMessages.starboardSide(),
: NauticalSideFormatter.format(this.getMarkPassingSide(), stringMessages),
DateTimeFormat.getFormat(PredefinedFormat.TIME_FULL).format(this.getMarkPassingTimePoint()));
String maneuverTitle = timeAndManeuver + timePointBefore + "; " + directionChange + "; " + speedChange + "; "
+ maxTurningRate + "; " + avgTurningRate + "; " + lowestSpeed + maneuverLoss + markPassing;