From 65d4a6f9bc6e34c19d9bc4108fa57b4898001bbb Mon Sep 17 00:00:00 2001 From: fmittag Date: Mon, 30 Apr 2012 16:49:05 +0200 Subject: [PATCH] added settings for enable/disable the drawing of the help lines like start, finish and advantage line --- .../gwt/ui/client/DataEntryDialog.java | 9 +++ .../sailing/gwt/ui/client/StringMessages.java | 5 ++ .../gwt/ui/client/StringMessages.properties | 7 +- .../ui/client/StringMessages_de.properties | 7 +- .../gwt/ui/shared/racemap/RaceMap.java | 37 ++++++---- .../racemap/RaceMapHelpLinesSettings.java | 67 +++++++++++++++++++ .../ui/shared/racemap/RaceMapSettings.java | 13 +++- .../RaceMapSettingsDialogComponent.java | 45 ++++++++++--- .../racemap/RaceMapSettingsTypeFormatter.java | 35 ++++++++++ .../shared/racemap/RaceMapZoomSettings.java | 12 ++-- .../ui/shared/racemap/ZoomTypeFormatter.java | 22 ------ 11 files changed, 206 insertions(+), 53 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapHelpLinesSettings.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapSettingsTypeFormatter.java delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/ZoomTypeFormatter.java diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialog.java index efd649b441a..67a0badb020 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialog.java @@ -1,5 +1,7 @@ package com.sap.sailing.gwt.ui.client; +import com.google.gwt.dom.client.Style.FontWeight; +import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.dom.client.ChangeEvent; import com.google.gwt.event.dom.client.ChangeHandler; import com.google.gwt.event.dom.client.ClickEvent; @@ -230,6 +232,13 @@ public abstract class DataEntryDialog { return longBox; } + public Label createHeadlineLabel(String headlineText) { + Label headlineLabel = new Label(headlineText); + headlineLabel.getElement().getStyle().setFontWeight(FontWeight.BOLD); + headlineLabel.getElement().getStyle().setPaddingTop(1, Unit.EM); + return headlineLabel; + } + public CheckBox createCheckbox(String checkboxLabel) { CheckBox result = new CheckBox(checkboxLabel); result.addValueChangeHandler(new ValueChangeHandler() { 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 6ef80933ce9..3e7b69020f6 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 @@ -289,4 +289,9 @@ public interface StringMessages extends Messages { String averageCrossTrackErrorInMeters(); String enterMaster(); String errorStartingReplication(String hostname, String message); + String helpLines(); + String startLine(); + String finishLine(); + String advantageLine(); + String courseMiddleLine(); } \ No newline at end of file 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 c4a88ce770c..05a0d1555c4 100644 --- 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 @@ -283,4 +283,9 @@ replication=Replication errorFetchingReplicaData=Error fetching replica data: {0} averageCrossTrackErrorInMeters=\u2205 XTE enterMaster=Hostname of Master Instance -errorStartingReplication=Error starting replication from host {0}: {1} \ No newline at end of file +errorStartingReplication=Error starting replication from host {0}: {1} +helpLines=Help lines +startLine=Start line +finishLine=Finish line +advantageLine=Advantage line +courseMiddleLine=Course middle line 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 9103b114168..2a6801d04c3 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 @@ -284,4 +284,9 @@ replication=Replikation errorFetchingReplicaData=Fehler beim Beschaffen der Replikationsdaten: {0} averageCrossTrackErrorInMeters=\u2205 XTE enterMaster=Hostname der Master-Instanz -errorStartingReplication=Fehler beim Starten der Replikation von Host {0}: {1} \ No newline at end of file +errorStartingReplication=Fehler beim Starten der Replikation von Host {0}: {1} +helpLines=Hilfslinien +startLine=Startlinie +finishLine=Ziellinie +advantageLine=Führungslinie +courseMiddleLine=Kursmittellinie diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMap.java index 02f5499a20e..27412cadc55 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMap.java @@ -87,6 +87,7 @@ import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO; import com.sap.sailing.gwt.ui.shared.WindTrackInfoDTO; import com.sap.sailing.gwt.ui.shared.components.Component; import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent; +import com.sap.sailing.gwt.ui.shared.racemap.RaceMapHelpLinesSettings.HelpLineTypes; import com.sap.sailing.gwt.ui.shared.racemap.RaceMapZoomSettings.ZoomTypes; public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSelectionChangeListener, RaceSelectionChangeListener, @@ -367,9 +368,10 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe showMarksOnMap(raceMapDataDTO.coursePositions); showStartAndFinishLines(raceMapDataDTO.coursePositions); showAdvantageLine(competitorsToShow); + // Rezoom the map // TODO make this a loop across the LatLngBoundsCalculators, pulling them from a collection updated in updateSettings - if (!getSettings().getZoomSettings().contains(ZoomTypes.NONE)) { // Auto zoom if setting is not manual + if (!getSettings().getZoomSettings().containsZoomType(ZoomTypes.NONE)) { // Auto zoom if setting is not manual LatLngBounds bounds = getSettings().getZoomSettings().getNewBounds(RaceMap.this); zoomMapToNewBounds(bounds); mapFirstZoomDone = true; @@ -645,7 +647,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } } - if (leadingCompetitorDTO != null && lastShownFix.containsKey(leadingCompetitorDTO) && lastShownFix.get(leadingCompetitorDTO) != -1 + if (leadingCompetitorDTO != null && getSettings().getHelpLinesSettings().containsHelpLine(HelpLineTypes.ADVANTAGELINE) && + lastShownFix.containsKey(leadingCompetitorDTO) && lastShownFix.get(leadingCompetitorDTO) != -1 && legOfLeaderCompetitor > 0 && legOfLeaderCompetitor <= lastRaceTimesInfo.getLegInfos().size()) { LegInfoDTO legInfoDTO = lastRaceTimesInfo.getLegInfos().get(legOfLeaderCompetitor-1); GPSFixDTO lastBoatFix = getBoatFix(leadingCompetitorDTO); @@ -709,14 +712,15 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe private void showStartAndFinishLines(final CourseDTO courseDTO) { if(map != null && courseDTO != null && quickRanks != null && !quickRanks.isEmpty() && lastRaceTimesInfo != null) { int legOfLeadingCompetitor = quickRanks.get(0).legNumber; - int numberOfLegs = lastRaceTimesInfo.legInfos.size() - 1; - if(courseDTO.startGate != null && legOfLeadingCompetitor == 1) { + int numberOfLegs = lastRaceTimesInfo.legInfos.size(); + if(courseDTO.startGate != null && legOfLeadingCompetitor == 1 && + getSettings().getHelpLinesSettings().containsHelpLine(HelpLineTypes.STARTLINE)) { LatLng[] startGatePoints = new LatLng[2]; startGatePoints[0] = LatLng.newInstance(courseDTO.startGate.getA().position.latDeg, courseDTO.startGate.getA().position.lngDeg); startGatePoints[1] = LatLng.newInstance(courseDTO.startGate.getB().position.latDeg, courseDTO.startGate.getB().position.lngDeg); if(startLine == null) { PolylineOptions options = PolylineOptions.newInstance(/* clickable */false, /* geodesic */true); - startLine = new Polyline(startGatePoints, /* color */ "#1e60bc", /* width */ 1, /* opacity */1.0, options); + startLine = new Polyline(startGatePoints, /* color */ "#FFFFFF", /* width */ 1, /* opacity */1.0, options); map.addOverlay(startLine); } else { startLine.deleteVertex(1); @@ -731,13 +735,14 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe startLine.deleteVertex(0); } } - if(courseDTO.finishGate != null && legOfLeadingCompetitor == numberOfLegs) { + if(courseDTO.finishGate != null && legOfLeadingCompetitor == numberOfLegs && + getSettings().getHelpLinesSettings().containsHelpLine(HelpLineTypes.FINISHLINE)) { LatLng[] finishGatePoints = new LatLng[2]; finishGatePoints[0] = LatLng.newInstance(courseDTO.finishGate.getA().position.latDeg, courseDTO.finishGate.getA().position.lngDeg); finishGatePoints[1] = LatLng.newInstance(courseDTO.finishGate.getB().position.latDeg, courseDTO.finishGate.getB().position.lngDeg); if(finishLine == null) { PolylineOptions options = PolylineOptions.newInstance(/* clickable */false, /* geodesic */true); - finishLine = new Polyline(finishGatePoints, /* color */ "#1e60bc", /* width */ 1, /* opacity */1.0, options); + finishLine = new Polyline(finishGatePoints, /* color */ "#000000", /* width */ 1, /* opacity */1.0, options); map.addOverlay(finishLine); } else { finishLine.deleteVertex(1); @@ -1278,7 +1283,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } //Trigger auto-zoom if needed RaceMapZoomSettings zoomSettings = getSettings().getZoomSettings(); - if (!zoomSettings.contains(ZoomTypes.NONE) && zoomSettings.isZoomToSelectedCompetitors()) { + if (!zoomSettings.containsZoomType(ZoomTypes.NONE) && zoomSettings.isZoomToSelectedCompetitors()) { zoomMapToNewBounds(zoomSettings.getNewBounds(this)); } } @@ -1320,7 +1325,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } //Trigger auto-zoom if needed RaceMapZoomSettings zoomSettings = getSettings().getZoomSettings(); - if (!zoomSettings.contains(ZoomTypes.NONE) && zoomSettings.isZoomToSelectedCompetitors()) { + if (!zoomSettings.containsZoomType(ZoomTypes.NONE) && zoomSettings.isZoomToSelectedCompetitors()) { zoomMapToNewBounds(zoomSettings.getNewBounds(this)); } } @@ -1348,6 +1353,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe @Override public void updateSettings(RaceMapSettings newSettings) { boolean maneuverTypeSelectionChanged = false; + boolean requiredRedraw = false; for (ManeuverType maneuverType : ManeuverType.values()) { if (newSettings.isShowManeuverType(maneuverType) != getSettings().isShowManeuverType(maneuverType)) { maneuverTypeSelectionChanged = true; @@ -1372,18 +1378,25 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } if (newSettings.getTailLengthInMilliseconds() != getSettings().getTailLengthInMilliseconds()) { getSettings().setTailLengthInMilliseconds(newSettings.getTailLengthInMilliseconds()); - redraw(); + requiredRedraw = true; } if (newSettings.isShowOnlySelectedCompetitors() != getSettings().isShowOnlySelectedCompetitors()) { getSettings().setShowOnlySelectedCompetitors(newSettings.isShowOnlySelectedCompetitors()); - redraw(); + requiredRedraw = true; } if (!newSettings.getZoomSettings().equals(getSettings().getZoomSettings())) { getSettings().setZoomSettings(newSettings.getZoomSettings()); - if (!getSettings().getZoomSettings().contains(ZoomTypes.NONE)) { + if (!getSettings().getZoomSettings().containsZoomType(ZoomTypes.NONE)) { zoomMapToNewBounds(getSettings().getZoomSettings().getNewBounds(this)); } } + if (!newSettings.getHelpLinesSettings().equals(getSettings().getHelpLinesSettings())) { + getSettings().setHelpLinesSettings(newSettings.getHelpLinesSettings()); + requiredRedraw = true; + } + if(requiredRedraw) { + redraw(); + } } public static class BoatsBoundsCalculator extends LatLngBoundsCalculatorForSelected { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapHelpLinesSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapHelpLinesSettings.java new file mode 100644 index 00000000000..e967580a1b7 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapHelpLinesSettings.java @@ -0,0 +1,67 @@ +package com.sap.sailing.gwt.ui.shared.racemap; + +import java.util.ArrayList; +import java.util.List; + +public class RaceMapHelpLinesSettings { + + /** + * Types of help lines on the map + */ + public enum HelpLineTypes { + STARTLINE, FINISHLINE, ADVANTAGELINE, // COURSEMIDDLELINE ..not supported yet + } + + private ArrayList visibleHelpLines; + + /** + * Creates new RaceMapHelpLinesSettings with the {@link HelpLineTypes} STARTLINE, FINISHLINE and ADVANTAGELINE.
+ */ + public RaceMapHelpLinesSettings() { + visibleHelpLines = new ArrayList(); + visibleHelpLines.add(HelpLineTypes.STARTLINE); + visibleHelpLines.add(HelpLineTypes.FINISHLINE); + visibleHelpLines.add(HelpLineTypes.ADVANTAGELINE); + } + + public RaceMapHelpLinesSettings(ArrayList visibleHelpLines) { + this.visibleHelpLines = visibleHelpLines; + } + + public List getVisibleHelpLines() { + return visibleHelpLines; + } + + public void setVisibleHelpLines(List visibleHelpLines) { + this.visibleHelpLines = new ArrayList(visibleHelpLines); + } + + public boolean containsHelpLine(HelpLineTypes helpLineType) { + return visibleHelpLines.contains(helpLineType); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((visibleHelpLines == null) ? 0 : visibleHelpLines.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + RaceMapHelpLinesSettings other = (RaceMapHelpLinesSettings) obj; + if (visibleHelpLines == null) { + if (other.visibleHelpLines != null) + return false; + } else if (!visibleHelpLines.equals(other.visibleHelpLines)) + return false; + return true; + } +} \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapSettings.java index c22d8edb5a4..a32be56d176 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapSettings.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapSettings.java @@ -14,7 +14,9 @@ public class RaceMapSettings { private boolean showOnlySelectedCompetitors = false; private RaceMapZoomSettings zoomSettings; - + + private RaceMapHelpLinesSettings helpLinesSettings; + private long tailLengthInMilliseconds = 100000l; public RaceMapSettings() { @@ -25,6 +27,7 @@ public class RaceMapSettings { maneuverTypesToShow.add(ManeuverType.MARK_PASSING); this.zoomSettings = new RaceMapZoomSettings(); + this.helpLinesSettings = new RaceMapHelpLinesSettings(); } public long getTailLengthInMilliseconds() { @@ -71,4 +74,12 @@ public class RaceMapSettings { this.zoomSettings = zoomSettings; } + public RaceMapHelpLinesSettings getHelpLinesSettings() { + return helpLinesSettings; + } + + public void setHelpLinesSettings(RaceMapHelpLinesSettings helpLinesSettings) { + this.helpLinesSettings = helpLinesSettings; + } + } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapSettingsDialogComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapSettingsDialogComponent.java index fbcd9d1f401..a5e6276d78a 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapSettingsDialogComponent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapSettingsDialogComponent.java @@ -3,12 +3,11 @@ package com.sap.sailing.gwt.ui.shared.racemap; import java.util.ArrayList; import java.util.List; -import com.google.gwt.dom.client.Style.FontWeight; -import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.user.client.ui.CheckBox; import com.google.gwt.user.client.ui.FocusWidget; +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.LongBox; @@ -21,12 +20,14 @@ import com.sap.sailing.gwt.ui.client.DataEntryDialog.Validator; import com.sap.sailing.gwt.ui.client.ManeuverTypeFormatter; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent; +import com.sap.sailing.gwt.ui.shared.racemap.RaceMapHelpLinesSettings.HelpLineTypes; import com.sap.sailing.gwt.ui.shared.racemap.RaceMapZoomSettings.ZoomTypes; public class RaceMapSettingsDialogComponent implements SettingsDialogComponent { //Initializing the lists to prevent a null pointer exception in the first validation call private List> checkboxAndManeuverType = new ArrayList>(); private List> checkboxAndZoomType = new ArrayList>(); + private List> checkboxAndHelpLineType = new ArrayList>(); private CheckBox zoomOnlyToSelectedCompetitors = new CheckBox(); private CheckBox checkBoxDouglasPeuckerPoints = new CheckBox(); private CheckBox showOnlySelectedCompetitors = new CheckBox(); @@ -46,17 +47,19 @@ public class RaceMapSettingsDialogComponent implements SettingsDialogComponent dialog) { VerticalPanel vp = new VerticalPanel(); HorizontalPanel labelAndTailLengthBoxPanel = new HorizontalPanel(); - labelAndTailLengthBoxPanel.add(new Label(stringMessages.tailLength())); + labelAndTailLengthBoxPanel.setSpacing(5); + Label tailLengthLabel = new Label(stringMessages.tailLength() + ":"); + labelAndTailLengthBoxPanel.add(tailLengthLabel); + labelAndTailLengthBoxPanel.setCellVerticalAlignment(tailLengthLabel, HasVerticalAlignment.ALIGN_MIDDLE); tailLengthBox = dialog.createLongBox((int) (initialSettings.getTailLengthInMilliseconds() / 1000), 4); labelAndTailLengthBoxPanel.add(tailLengthBox); + labelAndTailLengthBoxPanel.setCellVerticalAlignment(tailLengthBox, HasVerticalAlignment.ALIGN_MIDDLE); vp.add(labelAndTailLengthBoxPanel); showOnlySelectedCompetitors = dialog.createCheckbox(stringMessages.showOnlySelected()); showOnlySelectedCompetitors.setValue(initialSettings.isShowOnlySelectedCompetitors()); vp.add(showOnlySelectedCompetitors); - Label zoomLabel = new Label(stringMessages.zoom()); - zoomLabel.getElement().getStyle().setFontWeight(FontWeight.BOLD); - zoomLabel.getElement().getStyle().setPaddingTop(1, Unit.EM); + Label zoomLabel = dialog.createHeadlineLabel(stringMessages.zoom()); vp.add(zoomLabel); HorizontalPanel labelAndZoomSettingsPanel = new HorizontalPanel(); @@ -66,7 +69,7 @@ public class RaceMapSettingsDialogComponent implements SettingsDialogComponent(); for (ZoomTypes zoomType : ZoomTypes.values()) { if (zoomType != ZoomTypes.NONE) { - CheckBox cb = dialog.createCheckbox(ZoomTypeFormatter.format(zoomType, stringMessages)); + CheckBox cb = dialog.createCheckbox(RaceMapSettingsTypeFormatter.formatZoomType(zoomType, stringMessages)); cb.setValue(initialSettings.getZoomSettings().getTypesToConsiderOnZoom().contains(zoomType), true); checkboxAndZoomType.add(new Pair(cb, zoomType)); zoomSettingsBoxesPanel.add(cb); @@ -92,9 +95,7 @@ public class RaceMapSettingsDialogComponent implements SettingsDialogComponent(cb, helpLineType)); + helpLineSettingsBoxesPanel.add(cb); + } + vp.add(helpLineSettingsBoxesPanel); + return vp; } @@ -132,6 +146,7 @@ public class RaceMapSettingsDialogComponent implements SettingsDialogComponent helpLineTypes = new ArrayList(); + for (Pair pair : checkboxAndHelpLineType) { + if (pair.getA().getValue()) { + helpLineTypes.add(pair.getB()); + } + } + return new RaceMapHelpLinesSettings(helpLineTypes); + } + @Override public Validator getValidator() { return new Validator() { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapSettingsTypeFormatter.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapSettingsTypeFormatter.java new file mode 100644 index 00000000000..399d31eaaa3 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapSettingsTypeFormatter.java @@ -0,0 +1,35 @@ +package com.sap.sailing.gwt.ui.shared.racemap; + +import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sailing.gwt.ui.shared.racemap.RaceMapHelpLinesSettings.HelpLineTypes; +import com.sap.sailing.gwt.ui.shared.racemap.RaceMapZoomSettings.ZoomTypes; + +public class RaceMapSettingsTypeFormatter { + public static String formatZoomType(ZoomTypes zoomType, StringMessages stringConstants) { + switch (zoomType) { + case NONE: + return stringConstants.autoZoomOff(); + case BOATS: + return stringConstants.autoZoomToBoats(); + case TAILS: + return stringConstants.autoZoomToTails(); + case BUOYS: + return stringConstants.autoZoomToBuoys(); + case WINDSENSORS: + return stringConstants.autoZoomToWindSensors(); + } + return null; + } + + public static String formatHelpLineType(HelpLineTypes helpLineType, StringMessages stringConstants) { + switch (helpLineType) { + case STARTLINE: + return stringConstants.startLine(); + case FINISHLINE: + return stringConstants.finishLine(); + case ADVANTAGELINE: + return stringConstants.advantageLine(); + } + return null; + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapZoomSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapZoomSettings.java index 149dbf8bac9..e8b3ab7e557 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapZoomSettings.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/RaceMapZoomSettings.java @@ -5,13 +5,14 @@ import java.util.List; import com.google.gwt.maps.client.geom.LatLngBounds; +/** + * @author Lennart Hensler (D054527) + */ public class RaceMapZoomSettings { /** * The auto-zoom types for a {@link RaceMap}.
* Each zoom type has a {@link LatLngBoundsCalculator}, which calculates the new bounds for a map. - * @author Lennart Hensler (D054527) - * */ public enum ZoomTypes { NONE(null), WINDSENSORS(new RaceMap.WindSensorsBoundsCalculator()), BOATS(new RaceMap.BoatsBoundsCalculator()), @@ -27,13 +28,13 @@ public class RaceMapZoomSettings { return calculater.calculateNewBounds(forMap); } }; - + private ArrayList typesToConsiderOnZoom; private boolean zoomToSelectedCompetitors; /** * Creates new RaceMapZoomSettings with the {@link ZoomTypes} BOATS and TAILS.
- * The attritbute zoomToSelectedCompetitors will be false. + * The attribute zoomToSelectedCompetitors will be false. */ public RaceMapZoomSettings() { typesToConsiderOnZoom = new ArrayList(); @@ -85,7 +86,7 @@ public class RaceMapZoomSettings { return zoomToSelectedCompetitors; } - public boolean contains(ZoomTypes zoomType) { + public boolean containsZoomType(ZoomTypes zoomType) { return typesToConsiderOnZoom.contains(zoomType); } @@ -116,5 +117,4 @@ public class RaceMapZoomSettings { return false; return true; } - } \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/ZoomTypeFormatter.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/ZoomTypeFormatter.java deleted file mode 100644 index 6d3785a9b26..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/ZoomTypeFormatter.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.sap.sailing.gwt.ui.shared.racemap; - -import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sailing.gwt.ui.shared.racemap.RaceMapZoomSettings.ZoomTypes; - -public class ZoomTypeFormatter { - public static String format(ZoomTypes zoomType, StringMessages stringConstants) { - switch (zoomType) { - case NONE: - return stringConstants.autoZoomOff(); - case BOATS: - return stringConstants.autoZoomToBoats(); - case TAILS: - return stringConstants.autoZoomToTails(); - case BUOYS: - return stringConstants.autoZoomToBuoys(); - case WINDSENSORS: - return stringConstants.autoZoomToWindSensors(); - } - return null; - } -}