From 755af55d0ab3761a898ef0fdc8a139d6cbd28d67 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 12 Aug 2015 18:11:26 +0200 Subject: [PATCH] avoid redraw when no coordinate system change affects a map that is already shown --- .../gwt/ui/client/shared/racemap/RaceMap.java | 30 ++++++++++--------- .../EmbeddedMapAndWindChartEntryPoint.java | 3 +- .../gwt/ui/raceboard/RaceBoardEntryPoint.java | 1 - 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java index a21646fad14..220d7159f69 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java @@ -494,21 +494,23 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } coordinateSystem.setCoordinateSystem(new IdentityCoordinateSystem()); } - fixesAndTails.clearTails(); - redraw(); - // zooming and setting options while the event loop is still working doesn't work reliably; defer until event loop returns - Scheduler.get().scheduleDeferred(new ScheduledCommand() { - @Override - public void execute() { - if (map != null) { - map.setOptions(mapOptions); - // ensure zooming to what the settings tell, or defaults if what the settings tell isn't possible right now - mapFirstZoomDone = false; - trueNorthIndicatorPanel.redraw(); - orientationChangeInProgress = false; + if (mapOptions != null) { // if no coordinate system change happened that affects an existing map, don't redraw + fixesAndTails.clearTails(); + redraw(); + // zooming and setting options while the event loop is still working doesn't work reliably; defer until event loop returns + Scheduler.get().scheduleDeferred(new ScheduledCommand() { + @Override + public void execute() { + if (map != null) { + map.setOptions(mapOptions); + // ensure zooming to what the settings tell, or defaults if what the settings tell isn't possible right now + mapFirstZoomDone = false; + trueNorthIndicatorPanel.redraw(); + orientationChangeInProgress = false; + } } - } - }); + }); + } } private void loadMapsAPIV3(final boolean showMapControls, final boolean showHeaderPanel) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/EmbeddedMapAndWindChartEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/EmbeddedMapAndWindChartEntryPoint.java index 7b27fb83e79..a5ce3f7521e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/EmbeddedMapAndWindChartEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/EmbeddedMapAndWindChartEntryPoint.java @@ -66,6 +66,7 @@ public class EmbeddedMapAndWindChartEntryPoint extends AbstractSailingEntryPoint @Override protected void doOnModuleLoad() { + GWT.debugger(); super.doOnModuleLoad(); // read mandatory parameters regattaLikeName = Window.Location.getParameter(PARAM_REGATTA_LIKE_NAME); @@ -141,7 +142,7 @@ public class EmbeddedMapAndWindChartEntryPoint extends AbstractSailingEntryPoint final List raceList = Collections.singletonList(selectedRaceIdentifier); raceSelectionModel.setSelection(raceList); final long refreshInterval = Duration.ONE_SECOND.times(3).asMillis(); - final Timer timer = new Timer(PlayModes.Live); + final Timer timer = new Timer(PlayModes.Replay); AsyncActionsExecutor asyncActionsExecutor = new AsyncActionsExecutor(); final TimeRangeWithZoomProvider timeRangeWithZoomProvider = new TimeRangeWithZoomModel(); // Use a TimePanel to manage wind chart zoom, although the TimePanel itself is not being displayed; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java index 1b6e082d5db..7d9e1c75e65 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java @@ -58,7 +58,6 @@ public class RaceBoardEntryPoint extends AbstractSailingEntryPoint { @Override protected void doOnModuleLoad() { - GWT.debugger(); super.doOnModuleLoad(); EntryPointHelper.registerASyncService((ServiceDefTarget) mediaService, RemoteServiceMappingConstants.mediaServiceRemotePath); // read mandatory parameters