annotate gnv-artifacts/src/main/java/de/intevation/gnv/chart/ChartFactory.java @ 65:8b75d01fa5b5

Insert Chart-Classes from old Repository gnv-artifacts/trunk@48 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Wed, 09 Sep 2009 12:02:09 +0000
parents
children 0e9762ebd18d
rev   line source
65
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
1 /**
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
2 * 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 $
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
3 * Source: $Source: /share/gdi/SDI-Suite/Repository/projekte/BSH-GDI/genericViewer/src/main/java/de/conterra/bsh/gdi/gnviewer/output/chart/ChartFactory.java,v $
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
4 * created by: Stefan Blume (blume)
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
5 * erstellt am: 06.12.2007
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
6 * Copyright: con terra GmbH, 2005
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
7 *
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
8 * modified by: $Author: blume $
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
9 * modified on: $Date: 2007/12/21 12:31:15 $
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
10 * Version: $Revision: 1.8 $
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
11 * TAG: $Name: $
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
12 * locked from: $Locker: $
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
13 * CVS State: $State: Exp $
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
14 * Project: $ProjectName$
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
15 */
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
16 package de.intevation.gnv.chart;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
17
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
18 import java.awt.Color;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
19 import java.awt.Font;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
20 import java.awt.image.BufferedImage;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
21 import java.io.BufferedOutputStream;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
22 import java.io.FileOutputStream;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
23 import java.io.FileReader;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
24 import java.io.IOException;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
25 import java.util.Date;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
26
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
27 import org.apache.log4j.Logger;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
28 import org.jfree.chart.JFreeChart;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
29 import org.jfree.chart.axis.AxisLocation;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
30 import org.jfree.chart.axis.DateAxis;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
31 import org.jfree.chart.axis.NumberAxis;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
32 import org.jfree.chart.axis.NumberTickUnit;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
33 import org.jfree.chart.encoders.KeypointPNGEncoderAdapter;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
34 import org.jfree.chart.plot.PlotOrientation;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
35 import org.jfree.chart.plot.XYPlot;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
36 import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
37 import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
38 import org.jfree.data.time.Minute;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
39 import org.jfree.data.time.TimeSeries;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
40 import org.jfree.data.time.TimeSeriesCollection;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
41 import org.jfree.data.xy.XYDataset;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
42 import org.jfree.ui.RectangleInsets;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
43
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
44 import au.com.bytecode.opencsv.CSVReader;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
45 import de.conterra.bsh.gdi.gnviewer.data.filter.IdValue;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
46 import de.conterra.bsh.gdi.gnviewer.data.filter.MeasurementId;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
47 import de.conterra.bsh.gdi.gnviewer.data.filter.ParameterId;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
48 import de.conterra.bsh.gdi.gnviewer.datasources.ResultSet;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
49 import de.conterra.bsh.gdi.gnviewer.datasources.Row;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
50 import de.conterra.bsh.gdi.gnviewer.exception.TechnicalException;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
51 import de.conterra.bsh.gdi.gnviewer.renderer.DiagramRenderer;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
52 import de.conterra.bsh.gdi.gnviewer.util.TempFile;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
53 import de.conterra.bsh.gdi.gnviewer.util.TemporaryFileDirectory;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
54
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
55 /**
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
56 * The class <code>ChartFactory</code> fulfills the following purposes:
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
57 * <ol>
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
58 * <li></li>
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
59 * </ol>
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
60 *
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
61 * @author blume
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
62 * @version 1.0
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
63 * @serial 1.0
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
64 * @see
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
65 * @since 06.12.2007 17:25:59
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
66 */
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
67 public class ChartFactory {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
68
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
69 /**
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
70 * Default Logging instance
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
71 */
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
72 private static Logger sLogger = Logger.getLogger(ChartFactory.class);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
73 private static boolean sDebug = sLogger.isDebugEnabled();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
74 private final TemporaryFileDirectory mTmpImageDir;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
75
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
76 /**
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
77 *
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
78 */
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
79 public ChartFactory(TemporaryFileDirectory pTmpImageDir) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
80 mTmpImageDir = pTmpImageDir;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
81 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
82
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
83 public synchronized TempFile createSimpleTimeSeriesChart(
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
84 ChartLabels pLabels, ChartStyle pStyle, String pTimeSeriesName,
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
85 TempFile tempF, IdValue[] pParameterId,
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
86 IdValue[] pMeasurementId, IdValue[] pFeatureId
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
87 ) throws IOException, TechnicalException {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
88 if (sDebug)
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
89 sLogger.debug("createSimpleTimeSeriesChart()");
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
90 int lLowerLevel = Integer.MIN_VALUE;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
91 int lUpperLevel = Integer.MAX_VALUE;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
92 if (pStyle.isUseUpperDataLevel()
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
93 && pStyle.getUpperLevel() < Integer.MAX_VALUE) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
94 lUpperLevel = pStyle.getUpperLevel();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
95 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
96 if (pStyle.isUseLowerDataLevel()
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
97 && pStyle.getLowerLevel() > Integer.MIN_VALUE) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
98 lLowerLevel = pStyle.getLowerLevel();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
99 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
100 if (sDebug)
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
101 sLogger.debug(" vor createDataset()");
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
102 XYDataset lSet = createDataset(pTimeSeriesName, tempF, lUpperLevel,
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
103 lLowerLevel,pParameterId,pMeasurementId,pFeatureId);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
104 if (sDebug)
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
105 sLogger.debug(" nach createDataset()");
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
106 final Color[] color = {Color.black, Color.red, Color.green, Color.blue};
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
107 DateAxis domain = new DateAxis("Zeit [UTC]");
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
108 NumberAxis axis;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
109 StandardXYItemRenderer renderer = new StandardXYItemRenderer();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
110 XYPlot plot = new XYPlot();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
111 //Global settings
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
112
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
113 plot.setOrientation(PlotOrientation.VERTICAL);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
114 plot.setBackgroundPaint(Color.lightGray);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
115 plot.setDomainGridlinePaint(Color.white);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
116 plot.setRangeGridlinePaint(Color.white);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
117 plot.setAxisOffset(new RectangleInsets(5.0,5.0,5.0,5.0));
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
118 //plot.getRangeAxis().setFixedDimension(10.0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
119 plot.setDomainAxis(domain);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
120 plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
121 if (pParameterId.length == 1) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
122 axis = new NumberAxis(pParameterId[0].getTitle());
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
123 if(pParameterId[0].getTitle().contains("richtung")){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
124 NumberAxis axis1 = new NumberAxis(
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
125 ((String) pParameterId[0].getTitle()));//,new Range(0.0,360.0));
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
126 axis1.setTickUnit(new NumberTickUnit(30.0));
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
127 axis1.setUpperBound(360.0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
128 axis1.setLowerBound(0.0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
129 //axis1.setDisplayRange(0.0,360.0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
130 plot.setRangeAxis( axis1);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
131 }else{
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
132 axis.setFixedDimension(10.0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
133 axis.setAutoRangeIncludesZero(false);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
134 plot.setRangeAxis(axis);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
135 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
136 axis.configure();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
137 plot.setRangeAxisLocation( AxisLocation.BOTTOM_OR_LEFT);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
138 plot.setRenderer(renderer);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
139 plot.setDataset(lSet);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
140 } else {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
141 // Individual settings for different parameters
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
142 for (int i = 0; i < lSet.getSeriesCount(); i++) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
143
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
144 plot.setDataset(i, getDataset((TimeSeriesCollection) lSet, i));
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
145 Color mColor=color[i % color.length]; // zyklische Farbvergabe
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
146 mColor = color[0];
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
147 // if ( pParameterId.length==1){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
148
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
149 if(((String) lSet.getSeriesKey(i)).contains("richtung")){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
150 NumberAxis axis1 = new NumberAxis(((String) lSet.getSeriesKey(i)));//,new Range(0.0,360.0));
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
151 axis1.setTickUnit(new NumberTickUnit(30.0));
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
152 //axis1.setDisplayRange(0.0,360.0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
153 axis1.setLabelPaint(mColor);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
154 axis1.setTickLabelPaint(mColor);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
155 axis1.setUpperBound(360.0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
156 axis1.setLowerBound(0.0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
157 plot.setRangeAxis(i, axis1);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
158
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
159
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
160 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
161 else {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
162 axis = new NumberAxis((String) lSet.getSeriesKey(i));
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
163 axis.setFixedDimension(10.0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
164 axis.setAutoRangeIncludesZero(false);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
165 axis.setLabelPaint(mColor);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
166 axis.setTickLabelPaint(mColor);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
167 plot.setRangeAxis(i, axis);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
168 axis.configure();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
169 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
170 if (i % 2 != 0)
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
171 plot.setRangeAxisLocation(i, AxisLocation.BOTTOM_OR_RIGHT);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
172 else
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
173 plot.setRangeAxisLocation(i, AxisLocation.BOTTOM_OR_LEFT);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
174 plot.mapDatasetToRangeAxis(i, i);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
175 // }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
176 renderer = new StandardXYItemRenderer();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
177 renderer.setSeriesPaint(i, mColor);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
178 // renderer.setSeriesStroke(i,stroke[j]);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
179 plot.setRenderer(i, renderer);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
180 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
181 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
182 JFreeChart chart = new JFreeChart(
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
183 pLabels.getTitle(),
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
184 new Font ("SansSerif",Font.BOLD,24),
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
185 plot,true);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
186
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
187
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
188 setStyle(chart, pStyle);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
189 configureRenderingOptions(chart);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
190 if (sDebug)
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
191 sLogger.debug(" vor encodeChart()");
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
192
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
193 return encodeChart(chart, pStyle);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
194 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
195 private static XYDataset getDataset(TimeSeriesCollection T, int pIndex){ //throws TechnicalException{
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
196 //if (T.getSeriesCount() < pIndex) throw TechnicalException();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
197 TimeSeriesCollection TSC = new TimeSeriesCollection();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
198 TSC.addSeries(T.getSeries(pIndex));
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
199 return (XYDataset) TSC;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
200 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
201 public synchronized TempFile createScatterPlot(ChartStyle pStyle,
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
202 ResultSet pResults) throws TechnicalException, IOException {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
203 ScatterPlot lPlot = new ScatterPlot("ScatterPlot", pResults);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
204 return encodeChart(lPlot.getChart(), pStyle);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
205 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
206
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
207 private void configureRenderingOptions(JFreeChart pJfreechart) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
208 org.jfree.chart.renderer.xy.XYItemRenderer xyitemrenderer = ((XYPlot) pJfreechart
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
209 .getPlot()).getRenderer();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
210 if (xyitemrenderer instanceof XYLineAndShapeRenderer) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
211 XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer) xyitemrenderer;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
212 xylineandshaperenderer.setBaseShapesVisible(true);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
213 xylineandshaperenderer.setBaseShapesFilled(true);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
214 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
215 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
216
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
217 private void setStyle(JFreeChart pJfreechart, ChartStyle pStyle) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
218 if (sDebug)
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
219 sLogger.debug("setStyle()");
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
220 pJfreechart.setBackgroundPaint(pStyle.getCanvasColor());
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
221 XYPlot xyplot = (XYPlot) pJfreechart.getPlot();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
222 xyplot.setBackgroundPaint(pStyle.getPlotBackgroundColor());
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
223 xyplot.setDomainGridlinePaint(pStyle.getDomainGridlineColor());
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
224 xyplot.setRangeGridlinePaint(pStyle.getRangeGridlineColor());
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
225
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
226 Insets lOffsets = pStyle.getAxisOffset();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
227 RectangleInsets lRectangleInsets = new RectangleInsets(lOffsets.mUpper,
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
228 lOffsets.mLeft, lOffsets.mLower, lOffsets.mRight);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
229 xyplot.setAxisOffset(lRectangleInsets);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
230 xyplot.setDomainCrosshairVisible(pStyle.isDomainCrosshairVisible());
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
231 xyplot.setRangeCrosshairVisible(pStyle.isRangeCrosshairVisible());
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
232
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
233 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
234
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
235
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
236 private TimeSeries createTimeSeries(String pTimeSeriesName, TempFile tempF,
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
237 int lUpperCut, int lLowerCut,int pStart,int pEnd, Date dStart, Date dEnd) throws TechnicalException{
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
238 if (sDebug)
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
239 sLogger.debug("createTimeSeries()");
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
240 Row lRow0, lRow1, lRowVorEnd;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
241
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
242 Date lDate=null, lDate0=null;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
243 DiagramRenderer mDiagramRenderer = new DiagramRenderer();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
244
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
245 CSVReader reader = null;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
246 TimeSeries lTimeseries = new TimeSeries(pTimeSeriesName,
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
247 org.jfree.data.time.Minute.class);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
248 try {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
249 reader = new CSVReader (new FileReader(tempF.getFile()), ';');
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
250
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
251
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
252
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
253 long maxGap=0, lDateDiff=0;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
254 double lValue=0;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
255 String [] lRow = null;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
256
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
257 int i = 0;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
258 while ((lRow = reader.readNext()) != null){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
259
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
260 if (i >= pStart+1 && i <= pEnd){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
261 if (i == pStart+1){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
262 lRow0 = new Row(lRow);//
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
263
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
264 // Handle Gaps > 0.5% timeserieslength, i.e do not draw here
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
265 // +TODO mache maxGap variabel �ber diagram options
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
266 maxGap = (dEnd.getTime() - dStart.getTime()) / 200; // 0,5 prozent der L�nge
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
267 if (maxGap < 3600000) maxGap=3600010;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
268 if (maxGap <(dEnd.getTime() - dStart.getTime())/(pEnd-pStart))
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
269 maxGap = (dEnd.getTime() - dStart.getTime())/(pEnd-pStart) + 1000;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
270
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
271 if (sDebug)
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
272 sLogger.debug("MaxGap : "+maxGap/1000+" L�nge : "+(dEnd.getTime() - dStart.getTime())/1000+
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
273 "Intervall "+(dEnd.getTime() - dStart.getTime())/(pEnd-pStart)/1000);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
274 lDate = lRow0.getDateValue(0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
275 lDate0 = lDate;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
276 lValue = lRow0.getDoubleValue(1);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
277 if (lValue > lLowerCut && lValue < lUpperCut){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
278 //lTimeseries.addOrUpdate(new Minute(lDate), lValue);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
279 lTimeseries.add(new Minute(lDate), lValue);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
280 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
281 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
282 //for (int i = pStart+1; i <= pEnd; i++) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
283 lRow1 = new Row (lRow);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
284 lDate = lRow1.getDateValue(0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
285 lValue = lRow1.getDoubleValue(1);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
286 lDateDiff = lDate.getTime() - lDate0.getTime();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
287 if (lDateDiff > maxGap) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
288 // add 1 minute in millisecs to left hand side Date
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
289 // and insert Dummy to break line
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
290 lDate0.setTime((lDate0.getTime() + 60000));
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
291 lTimeseries.addOrUpdate(new Minute(lDate0), null);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
292 lTimeseries.addOrUpdate(new Minute(lDate), lValue);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
293 //lTimeseries.add(new Minute(lDate0), null);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
294 } else if (lDateDiff == 0) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
295 if (sDebug)
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
296 sLogger.debug("Datediff: "+lDateDiff+" bei index : "+i+" Datum : "+lDate+" "+lDate0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
297 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
298 else if (lValue > lLowerCut && lValue < lUpperCut) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
299 lTimeseries.addOrUpdate(new Minute(lDate), lValue);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
300 //lTimeseries.add(new Minute(lDate), lValue);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
301 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
302 lRow0 = lRow1;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
303 lDate0 = lDate;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
304 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
305 i++;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
306 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
307
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
308
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
309 } catch (OutOfMemoryError e) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
310 sLogger.error(e.getMessage(), e);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
311 return lTimeseries;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
312
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
313 } catch (Exception e) { //TechnicalException
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
314 sLogger.error(e.getMessage(), e);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
315 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
316 finally {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
317 try{
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
318 reader.close();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
319 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
320 catch (Exception e){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
321 sLogger.error(e.getMessage(), e);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
322 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
323 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
324
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
325 return lTimeseries;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
326 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
327
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
328 private XYDataset createDataset(String pTimeseriesName, TempFile tempF,
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
329 int lUpperCut, int lLowerCut,IdValue[] pParameterId,
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
330 IdValue[] pMeasurementId, IdValue[] pFeatureID) throws TechnicalException {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
331
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
332 CSVReader reader=null;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
333 TimeSeriesCollection lTimeSeriesCollection = new TimeSeriesCollection();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
334 try{
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
335 for (int i=0;i<pMeasurementId.length;i++) System.out.println("Measurement Depth "+
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
336 pMeasurementId[i].getTitle() );
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
337 for (int i=0;i<pParameterId.length;i++) System.out.println("Parameter "+
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
338 pParameterId[i].getTitle() );
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
339
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
340 Date dStart = null, dEnd= null;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
341 int break1, break2, break3;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
342 int mStart = 0;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
343 int mEnd = 0;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
344
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
345 reader = new CSVReader (new FileReader(tempF.getFile()), ';');
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
346
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
347 String [] sArrayStrLine = reader.readNext();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
348
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
349 Row row = new Row(sArrayStrLine);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
350
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
351 break1 = new Integer (sArrayStrLine[2]).intValue();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
352 break2 = new Integer (sArrayStrLine[3]).intValue();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
353 break3 = new Integer (sArrayStrLine[4]).intValue();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
354 dStart = row.getDateValue(0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
355 int i = 1;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
356 while ((sArrayStrLine = reader.readNext()) != null) {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
357 row = new Row(sArrayStrLine);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
358 if (break1 != new Integer (sArrayStrLine[2]).intValue()
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
359 || break2 != new Integer (sArrayStrLine[3]).intValue()
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
360 || break3 != new Integer (sArrayStrLine[4]).intValue()){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
361 String mTimeSeriesName = findValueTitle(pParameterId,break1)+" "+
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
362 findValueTitle(pMeasurementId,break2)+"m";
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
363
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
364 lTimeSeriesCollection.addSeries(createTimeSeries(mTimeSeriesName,
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
365 tempF, lUpperCut, lLowerCut, mStart, mEnd, dStart, dEnd));
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
366 mStart = i;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
367 dStart = row.getDateValue(0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
368 break1 = new Integer (sArrayStrLine[2]).intValue();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
369 break2 = new Integer (sArrayStrLine[3]).intValue();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
370 break3 = new Integer (sArrayStrLine[4]).intValue();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
371
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
372 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
373 mEnd = i;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
374 //mEnd ++;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
375 dEnd = row.getDateValue(0);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
376 i = i + 1;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
377 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
378 String mTimeSeriesName = findValueTitle(pParameterId,break1)+" "+
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
379 findValueTitle(pMeasurementId,break2)+"m";
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
380 lTimeSeriesCollection.addSeries(createTimeSeries(mTimeSeriesName,
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
381 tempF, lUpperCut, lLowerCut, mStart, mEnd, dStart, dEnd));
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
382
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
383 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
384 catch (Exception e){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
385 sLogger.error(e.getMessage(), e);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
386 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
387 finally{
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
388 try{
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
389 reader.close();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
390 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
391 catch (Exception e){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
392 sLogger.error(e.getMessage(), e);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
393 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
394 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
395 return lTimeSeriesCollection;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
396 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
397
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
398
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
399
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
400 private TempFile encodeChart(JFreeChart pChart, ChartStyle pStyle)
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
401 throws IOException {
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
402 if (sDebug)
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
403 sLogger.debug("encodeChart()");
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
404 KeypointPNGEncoderAdapter lEncoder = new KeypointPNGEncoderAdapter();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
405 lEncoder.setEncodingAlpha(true);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
406
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
407 int lWidth = (int) pStyle.getChartSize().getWidth();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
408 int lHeight = (int) pStyle.getChartSize().getHeight();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
409
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
410 FileOutputStream lFileOutputStream = null;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
411 BufferedOutputStream lBufferedOutputStream = null;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
412
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
413 TempFile lImageFile = mTmpImageDir.createFile(".png");
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
414
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
415 BufferedImage lImage = pChart.createBufferedImage(lWidth, lHeight,
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
416 BufferedImage.BITMASK, null);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
417 lFileOutputStream = new FileOutputStream(lImageFile.getFile());
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
418 lBufferedOutputStream = new BufferedOutputStream(lFileOutputStream);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
419 lEncoder.encode(lImage, lBufferedOutputStream);
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
420 lBufferedOutputStream.close();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
421 lFileOutputStream.close();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
422
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
423 return lImageFile;
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
424
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
425 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
426
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
427 private String findValueTitle(IdValue[] pValueId,int pMmtId){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
428 for (int i=0;i<pValueId.length;i++){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
429 if ((long) pMmtId ==pValueId[i].getValue())return pValueId[i].getTitle();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
430 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
431 return "";
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
432 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
433 private String findValueTitle(IdValue[] pValueId,long pMmtId){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
434 for (int i=0;i<pValueId.length;i++){
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
435 if ( pMmtId ==pValueId[i].getValue())return pValueId[i].getTitle();
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
436 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
437 return "";
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
438 }
8b75d01fa5b5 Insert Chart-Classes from old Repository
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
439 }

http://dive4elements.wald.intevation.org