From 200d6dbc83842639353b1d4d34ef68c2bc42e473 Mon Sep 17 00:00:00 2001 From: David Gilbert Date: Fri, 8 Jun 2018 17:03:31 +0200 Subject: [PATCH] Fix for bug #8 (exception when zooming with LogAxis). --- pom.xml | 2 +- .../chart/fx/interaction/ZoomHandlerFX.java | 38 +++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index 2b53e10..eec5132 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ jfreechart-fx org.jfree - 1.0.1 + 1.0.1-SNAPSHOT jar diff --git a/src/main/java/org/jfree/chart/fx/interaction/ZoomHandlerFX.java b/src/main/java/org/jfree/chart/fx/interaction/ZoomHandlerFX.java index 79bea60..51bebd5 100644 --- a/src/main/java/org/jfree/chart/fx/interaction/ZoomHandlerFX.java +++ b/src/main/java/org/jfree/chart/fx/interaction/ZoomHandlerFX.java @@ -2,7 +2,7 @@ * JFreeChart-FX : JavaFX extensions for JFreeChart * ================================================ * - * (C) Copyright 2017, by Object Refinery Limited and Contributors. + * (C) Copyright 2017, 2018, by Object Refinery Limited and Contributors. * * Project Info: https://github.com/jfree/jfreechart-fx * @@ -27,7 +27,7 @@ * ------------------ * ZoomHandlerFX.java * ------------------ - * (C) Copyright 2014, 2017, by Object Refinery Limited and Contributors. + * (C) Copyright 2014-2018, by Object Refinery Limited and Contributors. * * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): -; @@ -221,24 +221,24 @@ else if (!hZoom) { h = Math.min(h, maxY - this.startPoint.getY()); } Rectangle2D zoomArea = new Rectangle2D.Double(x, y, w, h); - - boolean saved = p.isNotify(); - p.setNotify(false); - double pw0 = percentW(x, dataArea); - double pw1 = percentW(x + w, dataArea); - double ph0 = percentH(y, dataArea); - double ph1 = percentH(y + h, dataArea); - PlotRenderingInfo info - = this.viewer.getRenderingInfo().getPlotInfo(); - if (z.getOrientation().isVertical()) { - z.zoomDomainAxes(pw0, pw1, info, endPoint); - z.zoomRangeAxes(1 - ph1, 1 - ph0, info, endPoint); - } else { - z.zoomRangeAxes(pw0, pw1, info, endPoint); - z.zoomDomainAxes(1 - ph1, 1 - ph0, info, endPoint); + if (!zoomArea.isEmpty()) { + boolean saved = p.isNotify(); + p.setNotify(false); + double pw0 = percentW(x, dataArea); + double pw1 = percentW(x + w, dataArea); + double ph0 = percentH(y, dataArea); + double ph1 = percentH(y + h, dataArea); + PlotRenderingInfo info + = this.viewer.getRenderingInfo().getPlotInfo(); + if (z.getOrientation().isVertical()) { + z.zoomDomainAxes(pw0, pw1, info, endPoint); + z.zoomRangeAxes(1 - ph1, 1 - ph0, info, endPoint); + } else { + z.zoomRangeAxes(pw0, pw1, info, endPoint); + z.zoomDomainAxes(1 - ph1, 1 - ph0, info, endPoint); + } + p.setNotify(saved); } - p.setNotify(saved); - } } this.viewer.hideZoomRectangle();