From 017cd4d4e56a46892abbdde935fb2b54f86a3efa Mon Sep 17 00:00:00 2001 From: fmittag Date: Mon, 3 Dec 2012 17:21:41 +0100 Subject: [PATCH] zoom in live mode of the charts is still broken, but the rest should work fine. --- .../ui/shared/charts/AbstractChartPanel.java | 4 ++-- .../gwt/ui/shared/charts/RaceChart.java | 22 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/charts/AbstractChartPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/charts/AbstractChartPanel.java index 3475848e962..7c24c6b0fd5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/charts/AbstractChartPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/charts/AbstractChartPanel.java @@ -319,11 +319,11 @@ public abstract class AbstractChartPanel ext if(timeRangeWithZoomProvider.isZoomed()) { Pair timeZoom = timeRangeWithZoomProvider.getTimeZoom(); - resetMinMaxInterval(); + resetMinMaxAndExtremesInterval(false); competitorDataSeries.setPoints(newRaceDataPoints, false); - changeMinMaxInterval(timeZoom.getA(), timeZoom.getB()); + changeMinMaxAndExtremesInterval(timeZoom.getA(), timeZoom.getB(), false); } else { competitorDataSeries.setPoints(newRaceDataPoints, false); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/charts/RaceChart.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/charts/RaceChart.java index 73180d8af2b..bf4211b1fa2 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/charts/RaceChart.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/charts/RaceChart.java @@ -106,10 +106,8 @@ public abstract class RaceChart extends SimplePanel implements RaceSelectionChan return true; } - protected void resetMinMaxInterval() { + protected void changeMinMaxAndExtremesInterval(Date minTimepoint, Date maxTimepoint, boolean redraw) { XAxis xAxis = chart.getXAxis(); - Date minTimepoint = timeRangeWithZoomProvider.getFromTime(); - Date maxTimepoint = timeRangeWithZoomProvider.getToTime(); if (minTimepoint != null) { xAxis.setMin(minTimepoint.getTime()); @@ -122,25 +120,27 @@ public abstract class RaceChart extends SimplePanel implements RaceSelectionChan long tickInterval = (maxTimepoint.getTime() - minTimepoint.getTime()) / TICKCOUNT; xAxis.setTickInterval(tickInterval); } - chart.redraw(); + if(redraw) { + chart.redraw(); + } } - protected void changeMinMaxInterval(Date minIntervalTimepoint, Date maxIntervalTimepoint) { - XAxis xAxis = chart.getXAxis(); - xAxis.setExtremes(minIntervalTimepoint.getTime(), maxIntervalTimepoint.getTime(), true, true); + protected void resetMinMaxAndExtremesInterval(boolean redraw) { + changeMinMaxAndExtremesInterval(timeRangeWithZoomProvider.getFromTime(), timeRangeWithZoomProvider.getToTime(), redraw); } - + public void onTimeZoomChanged(Date zoomStartTimepoint, Date zoomEndTimepoint) { - changeMinMaxInterval(zoomStartTimepoint, zoomEndTimepoint); + changeMinMaxAndExtremesInterval(zoomStartTimepoint, zoomEndTimepoint, true); // Probably there is a function for this in a newer version of highcharts: http://jsfiddle.net/mqz3N/1071/ // chart.showResetZoom(); } public void onTimeRangeChanged(Date fromTime, Date toTime) { - resetMinMaxInterval(); + if(isZoomed && timer.getPlayMode() != PlayModes.Live) + changeMinMaxAndExtremesInterval(timeRangeWithZoomProvider.getFromTime(), timeRangeWithZoomProvider.getToTime(), true); } public void onTimeZoomReset() { - changeMinMaxInterval(timeRangeWithZoomProvider.getFromTime(), timeRangeWithZoomProvider.getToTime()); + resetMinMaxAndExtremesInterval(true); } }