From d4cb909d233ad74cc7fa5e6bb8095d583f08e32b Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 28 Mar 2025 18:05:49 +0100 Subject: [PATCH] bug6098: when wind ladder image tile has been loaded, call redraw() and draw() --- .../shared/racemap/windladder/WindLadder.java | 4 ++-- .../racemap/windladder/WindLadderOverlay.java | 13 ++++++++++--- .../gwt/ui/simulator/racemap/FullCanvasOverlay.java | 2 +- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/windladder/WindLadder.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/windladder/WindLadder.java index 8144f53dce6..62c700fd862 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/windladder/WindLadder.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/windladder/WindLadder.java @@ -41,8 +41,8 @@ public class WindLadder extends DoubleCanvasBuffer { super(); this.coordinateSystem = coordinateSystem; this.buffer = new WindLadderOverlay[BUFFER_SIZE]; - this.buffer[0] = new WindLadderOverlay(this, map, zIndex, coordinateSystem); - this.buffer[1] = new WindLadderOverlay(this, map, zIndex, coordinateSystem); + this.buffer[0] = new WindLadderOverlay(this, map, zIndex, coordinateSystem, "buffer-0"); + this.buffer[1] = new WindLadderOverlay(this, map, zIndex, coordinateSystem, "buffer-1"); this.apply(overlay -> overlay.setVisible(false)); this.setVisible(true); this.addToMap(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/windladder/WindLadderOverlay.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/windladder/WindLadderOverlay.java index 5a8824b3ebb..29865be9956 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/windladder/WindLadderOverlay.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/windladder/WindLadderOverlay.java @@ -24,7 +24,7 @@ public class WindLadderOverlay extends FullCanvasOverlay { protected WindLadder windLadder; - protected ImageTileGenerator tileGen = new ImageTileGenerator(RESOURCES.windLadderTexture(), this::redraw); + protected ImageTileGenerator tileGen = new ImageTileGenerator(RESOURCES.windLadderTexture(), ()->{ redraw(); draw(); }); protected Double windBearingRadians; protected Position fixPosition; @@ -36,12 +36,14 @@ public class WindLadderOverlay extends FullCanvasOverlay { protected boolean redraw = true; protected int transitionDisableCountdown; + private final String name; - public WindLadderOverlay(WindLadder windLadder, MapWidget map, int zIndex, CoordinateSystem coordinateSystem) { + public WindLadderOverlay(WindLadder windLadder, MapWidget map, int zIndex, CoordinateSystem coordinateSystem, String name) { super(map, zIndex, coordinateSystem); this.map.addZoomChangeHandler(event -> this.onZoomChange()); this.windLadder = windLadder; - getCanvas().getElement().setId("wind-ladder-display"); + getCanvas().getElement().setId("wind-ladder-display-"+name); + this.name = name; } public boolean update(Double windBearingRadians, Position fixPosition, long timeForPositionTransitionMillis) { @@ -259,4 +261,9 @@ public class WindLadderOverlay extends FullCanvasOverlay { } return mapHeight; } + + @Override + public String toString() { + return super.toString()+" "+name; + } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/racemap/FullCanvasOverlay.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/racemap/FullCanvasOverlay.java index edb09b8bb2c..1d9aa3139fd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/racemap/FullCanvasOverlay.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/racemap/FullCanvasOverlay.java @@ -66,7 +66,7 @@ public abstract class FullCanvasOverlay extends CanvasOverlayV3 implements Requi mapProjectionSet = true; setCanvasSettings(); super.getOnDrawHandler().onDraw(methods); - return false; + return false; // don't repeat }, /* delay */ 1000); } else { super.getOnDrawHandler().onDraw(methods);