mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-20 19:20:04 +00:00
treat MarkDTO objects by their ID, not by their name, in RaceMap and EditMarkPositionsPanel
Change-Id: I8807429bf3949b2f426a2c40d2dd93c1d4a7701f
This commit is contained in:
1 parent
1ff206ba39
commit
f35909e698
2 files changed
+22
-18
No files matched your search
+3
-3
@@ -899,14 +899,14 @@ public class EditMarkPositionPanel extends AbstractRaceChart<AbstractSettings> i
|
||||
}
|
||||
|
||||
public void showAllCourseMarkOverlays() {
|
||||
for (Map.Entry<String, CourseMarkOverlay> overlay : raceMap.getCourseMarkOverlays().entrySet()) {
|
||||
overlay.getValue().setVisible(true);
|
||||
for (final CourseMarkOverlay overlay : raceMap.getCourseMarkOverlays().values()) {
|
||||
overlay.setVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void hideAllCourseMarkOverlaysExceptSelected() {
|
||||
for (Map.Entry<String, CourseMarkOverlay> overlay : raceMap.getCourseMarkOverlays().entrySet()) {
|
||||
overlay.getValue().setVisible(overlay.getKey().equals(selectedMark.getName()));
|
||||
overlay.getValue().setVisible(overlay.getKey().equals(selectedMark.getIdAsString()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+19
-15
@@ -283,12 +283,16 @@ public class RaceMap extends AbstractCompositeComponent<RaceMapSettings> impleme
|
||||
private final Map<WindSource, WindSensorOverlay> windSensorOverlays;
|
||||
|
||||
/**
|
||||
* Map overlays with html5 canvas used to display course marks including buoy zones
|
||||
* Map from the {@link MarkDTO#getIdAsString() mark's ID converted to a string} to the corresponding overlays with
|
||||
* html5 canvas used to display course marks including buoy zones
|
||||
*/
|
||||
private final Map<String, CourseMarkOverlay> courseMarkOverlays;
|
||||
|
||||
private final Map<String, HandlerRegistration> courseMarkClickHandlers;
|
||||
|
||||
/**
|
||||
* Maps from the {@link MarkDTO#getIdAsString() mark's ID converted to a string} to the corresponding {@link MarkDTO}
|
||||
*/
|
||||
private final Map<String, MarkDTO> markDTOs;
|
||||
|
||||
/**
|
||||
@@ -1192,15 +1196,15 @@ public class RaceMap extends AbstractCompositeComponent<RaceMapSettings> impleme
|
||||
if (endWaypointForCurrentLegNumber != null && Util.contains(endWaypointForCurrentLegNumber.controlPoint.getMarks(), markDTO)) {
|
||||
isSelected = true;
|
||||
}
|
||||
CourseMarkOverlay courseMarkOverlay = courseMarkOverlays.get(markDTO.getName());
|
||||
CourseMarkOverlay courseMarkOverlay = courseMarkOverlays.get(markDTO.getIdAsString());
|
||||
if (courseMarkOverlay == null) {
|
||||
courseMarkOverlay = new CourseMarkOverlay(map, RaceMapOverlaysZIndexes.COURSEMARK_ZINDEX, markDTO, coordinateSystem, courseDTO);
|
||||
courseMarkOverlay.setShowBuoyZone(settings.getHelpLinesSettings().isVisible(HelpLineTypes.BUOYZONE));
|
||||
courseMarkOverlay.setBuoyZoneRadius(settings.getBuoyZoneRadius());
|
||||
courseMarkOverlay.setSelected(isSelected);
|
||||
courseMarkOverlays.put(markDTO.getName(), courseMarkOverlay);
|
||||
markDTOs.put(markDTO.getName(), markDTO);
|
||||
registerCourseMarkInfoWindowClickHandler(markDTO.getName());
|
||||
courseMarkOverlays.put(markDTO.getIdAsString(), courseMarkOverlay);
|
||||
markDTOs.put(markDTO.getIdAsString(), markDTO);
|
||||
registerCourseMarkInfoWindowClickHandler(markDTO.getIdAsString());
|
||||
courseMarkOverlay.addToMap();
|
||||
} else {
|
||||
courseMarkOverlay.setMarkPosition(markDTO.position, transitionTimeInMillis);
|
||||
@@ -1209,13 +1213,13 @@ public class RaceMap extends AbstractCompositeComponent<RaceMapSettings> impleme
|
||||
courseMarkOverlay.setSelected(isSelected);
|
||||
courseMarkOverlay.setCourse(courseDTO);
|
||||
courseMarkOverlay.draw();
|
||||
toRemoveCourseMarks.remove(markDTO.getName());
|
||||
toRemoveCourseMarks.remove(markDTO.getIdAsString());
|
||||
}
|
||||
}
|
||||
}
|
||||
for (String toRemoveMarkName : toRemoveCourseMarks.keySet()) {
|
||||
CourseMarkOverlay removedOverlay = courseMarkOverlays.remove(toRemoveMarkName);
|
||||
if(removedOverlay != null) {
|
||||
for (String toRemoveMarkIdAsString : toRemoveCourseMarks.keySet()) {
|
||||
CourseMarkOverlay removedOverlay = courseMarkOverlays.remove(toRemoveMarkIdAsString);
|
||||
if (removedOverlay != null) {
|
||||
removedOverlay.removeFromMap();
|
||||
}
|
||||
}
|
||||
@@ -2031,15 +2035,15 @@ public class RaceMap extends AbstractCompositeComponent<RaceMapSettings> impleme
|
||||
}
|
||||
}
|
||||
|
||||
private void registerCourseMarkInfoWindowClickHandler(final String markDTOName) {
|
||||
final CourseMarkOverlay courseMarkOverlay = courseMarkOverlays.get(markDTOName);
|
||||
courseMarkClickHandlers.put(markDTOName,
|
||||
courseMarkOverlay.addClickHandler(new CourseMarkInfoWindowClickHandler(markDTOs.get(markDTOName), courseMarkOverlay)));
|
||||
private void registerCourseMarkInfoWindowClickHandler(final String markDTOIdAsString) {
|
||||
final CourseMarkOverlay courseMarkOverlay = courseMarkOverlays.get(markDTOIdAsString);
|
||||
courseMarkClickHandlers.put(markDTOIdAsString,
|
||||
courseMarkOverlay.addClickHandler(new CourseMarkInfoWindowClickHandler(markDTOs.get(markDTOIdAsString), courseMarkOverlay)));
|
||||
}
|
||||
|
||||
public void registerAllCourseMarkInfoWindowClickHandlers() {
|
||||
for (String markDTOName : markDTOs.keySet()) {
|
||||
registerCourseMarkInfoWindowClickHandler(markDTOName);
|
||||
for (String markDTOIdAsString : markDTOs.keySet()) {
|
||||
registerCourseMarkInfoWindowClickHandler(markDTOIdAsString);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user