mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-26 15:36:40 +00:00
changed the reading of metadata for marks from TracTrac in case of a gate to distinguish between mark1 and mark2 of a gate
This commit is contained in:
+32
-17
@@ -145,26 +145,27 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
if (domainControlPoint == null) {
|
||||
String controlPointName = controlPoint.getName();
|
||||
Map<String, String> controlPointMetadata = parseControlPointMetadata(controlPoint);
|
||||
MarkType type = MarkType.BUOY;
|
||||
String markType = controlPointMetadata.get("Type");
|
||||
if(markType != null && !markType.isEmpty()) {
|
||||
for(MarkType m: MarkType.values()) {
|
||||
if(m.name().equalsIgnoreCase(markType)) {
|
||||
type = m;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
String markColor = controlPointMetadata.get("Color");
|
||||
String markShape = controlPointMetadata.get("Shape");
|
||||
String markPattern = controlPointMetadata.get("Pattern");
|
||||
if (controlPoint.getHasTwoPoints()) {
|
||||
// it's a gate
|
||||
Mark leftMark = baseDomainFactory.getOrCreateMark(controlPointName + " (left)", type, markColor, markShape, markPattern);
|
||||
Mark rightMark = baseDomainFactory.getOrCreateMark(controlPointName + " (right)", type, markColor, markShape, markPattern);
|
||||
domainControlPoint = baseDomainFactory.createGate(leftMark, rightMark, controlPointName);
|
||||
MarkType type1 = resolveMarkTypeFromMetadata(controlPointMetadata, "P1.Type");
|
||||
MarkType type2 = resolveMarkTypeFromMetadata(controlPointMetadata, "P2.Type");
|
||||
String color1 = controlPointMetadata.get("P1.Color");
|
||||
String color2 = controlPointMetadata.get("P2.Color");
|
||||
String shape1 = controlPointMetadata.get("P1.Shape");
|
||||
String shape2 = controlPointMetadata.get("P2.Shape");
|
||||
String pattern1 = controlPointMetadata.get("P1.Pattern");
|
||||
String pattern2 = controlPointMetadata.get("P2.Pattern");
|
||||
|
||||
Mark mark1 = baseDomainFactory.getOrCreateMark(controlPointName + " (1)", type1, color1, shape1, pattern1);
|
||||
Mark mark2 = baseDomainFactory.getOrCreateMark(controlPointName + " (2)", type2, color2, shape2, pattern2);
|
||||
domainControlPoint = baseDomainFactory.createGate(mark1, mark2, controlPointName);
|
||||
} else {
|
||||
Mark mark = baseDomainFactory.getOrCreateMark(controlPointName, type, markColor, markShape, markPattern);
|
||||
MarkType type = resolveMarkTypeFromMetadata(controlPointMetadata, "Type");
|
||||
String color = controlPointMetadata.get("Color");
|
||||
String shape = controlPointMetadata.get("Shape");
|
||||
String pattern = controlPointMetadata.get("Pattern");
|
||||
|
||||
Mark mark = baseDomainFactory.getOrCreateMark(controlPointName, type, color, shape, pattern);
|
||||
domainControlPoint = mark;
|
||||
}
|
||||
controlPointCache.put(controlPoint, domainControlPoint);
|
||||
@@ -172,6 +173,20 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
return domainControlPoint;
|
||||
}
|
||||
}
|
||||
|
||||
private MarkType resolveMarkTypeFromMetadata(Map<String, String> controlPointMetadata, String typePropertyName) {
|
||||
MarkType result = MarkType.BUOY;
|
||||
String markType = controlPointMetadata.get(typePropertyName);
|
||||
if(markType != null && !markType.isEmpty()) {
|
||||
for(MarkType m: MarkType.values()) {
|
||||
if(m.name().equalsIgnoreCase(markType)) {
|
||||
result = m;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
private Map<String, String> parseControlPointMetadata(ControlPoint controlPoint) {
|
||||
|
||||
+3
-3
@@ -82,9 +82,9 @@ public class RaceMapImageManager {
|
||||
createMarkIconDescriptor(resources.buoyDarkOrangeIcon(), MarkType.BUOY, "orange", null, null, 6, 20);
|
||||
createMarkIconDescriptor(resources.buoyBlackFinishIcon(), MarkType.BUOY, "black", "cylinder", "checkered", 6, 20);
|
||||
|
||||
createMarkIconDescriptor(resources.cameraBoatIcon(), MarkType.CAMERABOAT, null, null, null, 6, 15);
|
||||
createMarkIconDescriptor(resources.umpireBoatIcon(), MarkType.UMPIREBOAT, null, null, null, 6, 15);
|
||||
createMarkIconDescriptor(resources.startBoatIcon(), MarkType.STARTBOAT, null, null, null, 6, 15);
|
||||
createMarkIconDescriptor(resources.cameraBoatIcon(), MarkType.CAMERABOAT, null, null, null, 35, 20);
|
||||
createMarkIconDescriptor(resources.umpireBoatIcon(), MarkType.UMPIREBOAT, null, null, null, 35, 20);
|
||||
createMarkIconDescriptor(resources.startBoatIcon(), MarkType.STARTBOAT, null, null, null, 35, 20);
|
||||
|
||||
createMarkIconDescriptor(resources.landmarkIcon(), MarkType.LANDMARK, null, null, null, 6, 15);
|
||||
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ interface RaceMapResources extends ClientBundle {
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/umpireBoat.png")
|
||||
ImageResource umpireBoatIcon();
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/umpireBoat.png")
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/startBoat.png")
|
||||
ImageResource startBoatIcon();
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/wind_combined.png")
|
||||
|
||||
Reference in New Issue
Block a user