Mercurial > dive4elements > gnv-client
view gnv-artifacts/src/main/java/de/intevation/gnv/chart/HorizontalProfileChartFactory.java @ 171:7fb9441dd8af
Format Code to max 80 Chars per Row and Cleanup
gnv-artifacts/trunk@208 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Fri, 09 Oct 2009 07:54:48 +0000 |
parents | 820238357bab |
children | bff7bbb7c6f0 |
line wrap: on
line source
/** * Title: ChartFactory, $Header: /share/gdi/SDI-Suite/Repository/projekte/BSH-GDI/genericViewer/src/main/java/de/conterra/bsh/gdi/gnviewer/output/chart/ChartFactory.java,v 1.8 2007/12/21 12:31:15 blume Exp $ * Source: $Source: /share/gdi/SDI-Suite/Repository/projekte/BSH-GDI/genericViewer/src/main/java/de/conterra/bsh/gdi/gnviewer/output/chart/ChartFactory.java,v $ * created by: Stefan Blume (blume) * erstellt am: 06.12.2007 * Copyright: con terra GmbH, 2005 * * modified by: $Author: blume $ * modified on: $Date: 2007/12/21 12:31:15 $ * Version: $Revision: 1.8 $ * TAG: $Name: $ * locked from: $Locker: $ * CVS State: $State: Exp $ * Project: $ProjectName$ */ package de.intevation.gnv.chart; import java.util.Collection; import java.util.Iterator; import org.apache.log4j.Logger; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.xy.XYSeries; import de.intevation.gnv.chart.exception.TechnicalChartException; import de.intevation.gnv.geobackend.base.Result; /** * * @author Tim Englich <tim.englich@intevation.de> * */ public class HorizontalProfileChartFactory extends VerticalProfileChartFactory { /** * Default Logging instance */ private static Logger sLogger = Logger .getLogger(HorizontalProfileChartFactory.class); private static boolean sDebug = sLogger.isDebugEnabled(); public HorizontalProfileChartFactory() { super(); super.plotOrientation = PlotOrientation.VERTICAL; } /** * * @param seriesName * @param resultSet * @param lUpperCut * @param lLowerCut * @param pStart * @param pEnd * @return * @throws TechnicalChartException */ @Override protected XYSeries createXYSeries(String seriesName, Collection<Result> resultSet, int lUpperCut, int lLowerCut, int pStart, int pEnd) throws TechnicalChartException { if (sDebug) sLogger.debug("createXYSeries()"); XYSeries series = new XYSeries(seriesName); try { double xValue = 0; double yValue = 0; double xStartCoord = 0; double yStartCoord = 0; int i = 0; Iterator<Result> resultIterator = resultSet.iterator(); while (resultIterator.hasNext()) { Result lRow = resultIterator.next(); if (i >= pStart && i <= pEnd) { if (xStartCoord == 0 && yStartCoord == 0) { xStartCoord = lRow.getDouble("XORDINATE_XCOORD"); yStartCoord = lRow.getDouble("XORDINATE_YCOORD"); } double currentXCoord = lRow.getDouble("XORDINATE_XCOORD"); ; double currentYCoord = lRow.getDouble("XORDINATE_YCOORD"); xValue = this.calculateDistance(xStartCoord, yStartCoord, currentXCoord, currentYCoord); yValue = lRow.getDouble("YORDINATE"); series.add(xValue, yValue); sLogger.debug(seriesName + " Added Value " + xValue + " / " + yValue); } else if (i > pEnd) { return series; } i++; } } catch (OutOfMemoryError e) { sLogger.error(e.getMessage(), e); return series; } catch (Exception e) { // TechnicalChartException sLogger.error(e.getMessage(), e); } finally { } return series; } private double calculateDistance(double xStartCoord, double yStartCoord, double currentXCoord, double currentYCoord) { double dx = xStartCoord - currentXCoord; double dy = yStartCoord - currentYCoord; return Math.sqrt((dx * dx) + (dy * dy)); } }