diff --git a/java/com.sap.sailing.gwt.ui/build.properties b/java/com.sap.sailing.gwt.ui/build.properties index 6e226b0d9b9..daa994289b7 100755 --- a/java/com.sap.sailing.gwt.ui/build.properties +++ b/java/com.sap.sailing.gwt.ui/build.properties @@ -51,5 +51,7 @@ bin.includes = META-INF/,\ AutoPlay.html,\ Home.css,\ Home.html,\ - SettingsDialog.css + SettingsDialog.css,\ + EmbeddedMapAndWindChart.css,\ + EmbeddedMapAndWindChart.html output.. = WEB-INF/classes/ diff --git a/java/com.sap.sailing.gwt.ui/images/flagsÀae.png b/java/com.sap.sailing.gwt.ui/images/flagsÀae.png new file mode 100644 index 00000000000..ef3a1ecfccd Binary files /dev/null and b/java/com.sap.sailing.gwt.ui/images/flagsÀae.png differ diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDetailsComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDetailsComposite.java index 5b44f253063..a86275481e8 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDetailsComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDetailsComposite.java @@ -157,7 +157,7 @@ public class EventDetailsComposite extends Composite { } videoURLList.setValues(videoURLStringsAsList); List leaderboardGroupNamesAsList = new ArrayList<>(); - for(LeaderboardGroupDTO leaderboardGroupDTO: event.getLeaderboardGroups()) { + for (LeaderboardGroupDTO leaderboardGroupDTO : event.getLeaderboardGroups()) { leaderboardGroupNamesAsList.add(leaderboardGroupDTO.getName()); } leaderboardGroupList.setValues(leaderboardGroupNamesAsList); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDialog.java index a65a62484f5..ddbac47a339 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDialog.java @@ -4,7 +4,9 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.UUID; import com.google.gwt.dom.client.Style.Unit; @@ -45,7 +47,7 @@ public abstract class EventDialog extends DataEntryDialogWithBootstrap protected TextBox sailorsInfoWebsiteURLEntryField; protected StringListInlineEditorComposite courseAreaNameList; protected StringConstantsListEditorComposite leaderboardGroupList; - protected List availableLeaderboardGroups; + protected Map availableLeaderboardGroupsByName; protected ImagesListComposite imagesListComposite; protected VideosListComposite videosListComposite; @@ -120,7 +122,10 @@ public abstract class EventDialog extends DataEntryDialogWithBootstrap super(stringMessages.event(), null, stringMessages.ok(), stringMessages.cancel(), validator, callback); this.stringMessages = stringMessages; - this.availableLeaderboardGroups = availableLeaderboardGroups; + this.availableLeaderboardGroupsByName = new HashMap<>(); + for (final LeaderboardGroupDTO lgDTO : availableLeaderboardGroups) { + availableLeaderboardGroupsByName.put(lgDTO.getName(), lgDTO); + } getDialogBox().getWidget().setWidth("730px"); final ValueChangeHandler> valueChangeHandler = new ValueChangeHandler>() { @Override @@ -150,9 +155,10 @@ public abstract class EventDialog extends DataEntryDialogWithBootstrap protected EventDTO getResult() { EventDTO result = new EventDTO(); List leaderboardGroupNames = leaderboardGroupList.getValue(); - for(LeaderboardGroupDTO lg: availableLeaderboardGroups) { - if(leaderboardGroupNames.contains(lg.getName())) { - result.addLeaderboardGroup(lg); + for (final String lgName : leaderboardGroupNames) { + final LeaderboardGroupDTO lgDTO = availableLeaderboardGroupsByName.get(lgName); + if (lgDTO != null) { + result.addLeaderboardGroup(lgDTO); } } result.setName(nameEntryField.getText()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 8932449626c..b247bbcdf69 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -772,7 +772,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S private MarkDTO convertToMarkDTO(Mark mark, Position position) { MarkDTO markDTO; - if(position != null) { + if (position != null) { markDTO = new MarkDTO(mark.getId().toString(), mark.getName(), position.getLatDeg(), position.getLngDeg()); } else { markDTO = new MarkDTO(mark.getId().toString(), mark.getName()); @@ -1864,6 +1864,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S result.totalLegsCount = trackedRace.getRace().getCourse().getLegs().size(); result.currentLegNumber = trackedRace.getLastLegStarted(dateAsTimePoint); result.marks = new HashSet(); + result.course = new ArrayList<>(); result.waypointPositions = new ArrayList<>(); Set marks = new HashSet(); Course course = trackedRace.getRace().getCourse(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CoursePositionsDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CoursePositionsDTO.java index a5d53429fba..32ec6e4ec46 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CoursePositionsDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CoursePositionsDTO.java @@ -8,6 +8,7 @@ import com.sap.sailing.domain.common.NauticalSide; import com.sap.sailing.domain.common.Position; public class CoursePositionsDTO implements IsSerializable { + public List course; public List waypointPositions; public List startMarkPositions; public List finishMarkPositions; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceCourseDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceCourseDTO.java index 9ddb68d97b0..2215b45c264 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceCourseDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceCourseDTO.java @@ -3,6 +3,7 @@ package com.sap.sailing.gwt.ui.shared; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -21,7 +22,21 @@ public class RaceCourseDTO implements IsSerializable { } public RaceCourseDTO(List waypoints) { - this(waypoints, null); + this(waypoints, getMarksFromWaypoints(waypoints)); + } + + private static List getMarksFromWaypoints(List waypoints) { + final LinkedHashSet marks = new LinkedHashSet<>(); + for (final WaypointDTO waypoint : waypoints) { + for (final MarkDTO m : waypoint.controlPoint.getMarks()) { + marks.add(m); + } + } + final List result = new ArrayList<>(); + for (final MarkDTO m : marks) { + result.add(m); + } + return result; } public RaceCourseDTO(List waypoints, List allMarks) {