# HG changeset patch # User Ingo Weinzierl # Date 1328197168 0 # Node ID 60615235e95160b9a6d1f760437d4f4901abe09b # Parent c2b15d9c0f4375df6aa13ae1c5c1910725b4a940 Added a ChartHelper class that currently contains a method to compute the xy ranges of an XYDataset. flys-artifacts/trunk@3884 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r c2b15d9c0f43 -r 60615235e951 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Thu Feb 02 14:00:40 2012 +0000 +++ b/flys-artifacts/ChangeLog Thu Feb 02 15:39:28 2012 +0000 @@ -1,3 +1,8 @@ +2012-02-02 Ingo Weinzierl + + * src/main/java/de/intevation/flys/exports/ChartHelper.java: New helper + class for working with charts. + 2012-02-02 Ingo Weinzierl * src/main/java/de/intevation/flys/exports/TimeseriesChartGenerator.java: diff -r c2b15d9c0f43 -r 60615235e951 flys-artifacts/src/main/java/de/intevation/flys/exports/ChartHelper.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/ChartHelper.java Thu Feb 02 15:39:28 2012 +0000 @@ -0,0 +1,56 @@ +package de.intevation.flys.exports; + +import org.jfree.data.Range; +import org.jfree.data.xy.XYDataset; + + +/** + * @author Ingo Weinzierl + */ +public class ChartHelper { + + /** + * This method returns the ranges of the XYDataset dataset as array + * with [xrange, yrange]. + * + * @param dataset The dataset which should be evaluated. + * + * @return an array with x and y ranges. + */ + public static Range[] getRanges(XYDataset dataset) { + if (dataset == null) { + return null; + } + + double minX = Double.MAX_VALUE; + double maxX = -Double.MAX_VALUE; + double minY = Double.MAX_VALUE; + double maxY = -Double.MAX_VALUE; + + for (int i = 0, m = dataset.getSeriesCount(); i < m; i++) { + for (int j = 0, n = dataset.getItemCount(i); j < n; j++) { + double x = dataset.getXValue(i, j); + double y = dataset.getYValue(i, j); + + if (x < minX) { + minX = x; + } + + if (x > maxX) { + maxX = x; + } + + if (y < minY) { + minY = y; + } + + if (y > maxY) { + maxY = y; + } + } + } + + return new Range[] { new Range(minX, maxX), new Range(minY, maxY) }; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :