From f08cfe1228332e9dfb6583fae70f94a474af6545 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 30 Apr 2020 16:34:53 +0200 Subject: [PATCH] bug5264: added missing update of lastPositions in CompetitorInfoOverlays --- .../ui/client/shared/racemap/CompetitorInfoOverlay.java | 9 --------- .../ui/client/shared/racemap/CompetitorInfoOverlays.java | 5 +++-- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CompetitorInfoOverlay.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CompetitorInfoOverlay.java index 946ea21aa71..1e18f158af9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CompetitorInfoOverlay.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CompetitorInfoOverlay.java @@ -42,7 +42,6 @@ public class CompetitorInfoOverlay extends CanvasOverlayV3 { this.infoText = infoText; canvasWidth = 100; canvasHeight = 100; - setCanvasSize(canvasWidth, canvasHeight); canvas.addStyleName("competitorInfo-Canvas"); } @@ -53,7 +52,6 @@ public class CompetitorInfoOverlay extends CanvasOverlayV3 { LatLng latLngPosition = coordinateSystem.toLatLng(position); Context2d ctx = getCanvas().getContext2d(); CssColor grayTransparentColor = CssColor.make("rgba(255,255,255,0.75)"); - ctx.setFont("12px bold Verdana sans-serif"); String[] textLines = infoText.split("\n"); TextMetrics measureText = ctx.measureText(findLargestLine(textLines)); @@ -61,10 +59,8 @@ public class CompetitorInfoOverlay extends CanvasOverlayV3 { infoBoxHeight = defaultInfoBoxHeight + textLines.length * 10; canvasWidth = (int)largestLineWidth + infoBoxHeight; setCanvasSize(canvasWidth, canvasHeight); - ctx.save(); ctx.clearRect(0, 0, canvasWidth, canvasHeight); - ctx.setLineWidth(1.0); ctx.setFillStyle(grayTransparentColor); if (competitorColor != null) { @@ -72,12 +68,10 @@ public class CompetitorInfoOverlay extends CanvasOverlayV3 { } else { ctx.setStrokeStyle("#888888"); } - ctx.beginPath(); ctx.moveTo(0,0); ctx.lineTo(0,101); ctx.stroke(); - ctx.beginPath(); ctx.moveTo(1.0,1.0); ctx.lineTo(canvasWidth,1.0); @@ -88,14 +82,11 @@ public class CompetitorInfoOverlay extends CanvasOverlayV3 { ctx.closePath(); ctx.fill(); ctx.stroke(); - ctx.beginPath(); ctx.setFillStyle("black"); drawText(textLines, ctx); ctx.stroke(); - ctx.restore(); - Point objectPositionInPx = mapProjection.fromLatLngToDivPixel(latLngPosition); setCanvasPosition(objectPositionInPx.getX(), objectPositionInPx.getY() - canvasHeight); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CompetitorInfoOverlays.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CompetitorInfoOverlays.java index febe7ca959a..c4879ce424b 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CompetitorInfoOverlays.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CompetitorInfoOverlays.java @@ -97,11 +97,11 @@ public class CompetitorInfoOverlays implements QuickFlagDataListener { /** * Updates {@link #ranks} and {@link speed} and re-draws the corresponding overlay */ - public void updateFlagData(CompetitorDTO competitorDTO, Integer rank, Double speed) { + public void updateFlagData(CompetitorDTO competitorDTO, Integer rank, Double speedInKnots) { CompetitorInfoOverlay overlay = competitorInfoOverlays.get(competitorDTO.getIdAsString()); if (overlay != null) { ranks.put(competitorDTO.getIdAsString(), rank); - lastPositions.put(competitorDTO.getIdAsString(), speed); + lastPositions.put(competitorDTO.getIdAsString(), speedInKnots); overlay.setInfoText(createInfoText(competitorDTO)); overlay.draw(); } @@ -125,6 +125,7 @@ public class CompetitorInfoOverlays implements QuickFlagDataListener { public void updatePosition(CompetitorDTO competitorDTO, GPSFixDTOWithSpeedWindTackAndLegType gpsFixDTO, long timeForPositionTransitionMillis) { CompetitorInfoOverlay overlay = competitorInfoOverlays.get(competitorDTO.getIdAsString()); + lastPositions.put(competitorDTO.getIdAsString(), gpsFixDTO.speedWithBearing.speedInKnots); if (overlay != null) { overlay.setPosition(gpsFixDTO.position, timeForPositionTransitionMillis); overlay.draw();