comparison gnv-artifacts/src/main/java/de/intevation/gnv/chart/TimeSeriesChart.java @ 364:2413273f1c13

Workarround: Store lower and upper bounds of data while iterating over all data and set the max range of axes with these information. JFreeCharts method NumberAxis.setAutoRange(true) doesn't seem to work properly. gnv-artifacts/trunk@439 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 16 Dec 2009 11:58:44 +0000
parents 4e6aa2a8c4c0
children f14c5d1b5b71
comparison
equal deleted inserted replaced
363:22229249e9fc 364:2413273f1c13
65 this.locale = locale; 65 this.locale = locale;
66 this.PLOT_ORIENTATION = PlotOrientation.VERTICAL; 66 this.PLOT_ORIENTATION = PlotOrientation.VERTICAL;
67 this.linesVisible = linesVisible; 67 this.linesVisible = linesVisible;
68 this.shapesVisible = shapesVisible; 68 this.shapesVisible = shapesVisible;
69 this.datasets = new HashMap(); 69 this.datasets = new HashMap();
70 this.ranges = new HashMap();
70 } 71 }
71 72
72 73
73 protected void initChart() { 74 protected void initChart() {
74 chart = ChartFactory.createTimeSeriesChart( 75 chart = ChartFactory.createTimeSeriesChart(
91 String breakPoint3 = null; 92 String breakPoint3 = null;
92 93
93 Iterator iter = resultSet.iterator(); 94 Iterator iter = resultSet.iterator();
94 Result row = null; 95 Result row = null;
95 String seriesName = null; 96 String seriesName = null;
97 String parameter = null;
96 TimeSeries series = null; 98 TimeSeries series = null;
97 99
98 int idx = 0; 100 int idx = 0;
99 int startPos = 0; 101 int startPos = 0;
100 int endPos = 0; 102 int endPos = 0;
117 if(series != null) { 119 if(series != null) {
118 // add gaps before adding series to chart 120 // add gaps before adding series to chart
119 startDate = results[startPos].getDate("XORDINATE"); 121 startDate = results[startPos].getDate("XORDINATE");
120 endDate = results[endPos-1].getDate("XORDINATE"); 122 endDate = results[endPos-1].getDate("XORDINATE");
121 addGaps(results,series,startDate,endDate,startPos,endPos); 123 addGaps(results,series,startDate,endDate,startPos,endPos);
122 addSeries(series, seriesName, idx); 124 addSeries(series, parameter, idx);
123 125
124 startPos = endPos + 1; 126 startPos = endPos + 1;
125 } 127 }
126 128
127 // prepare variables for next plot 129 // prepare variables for next plot
132 seriesName = createSeriesName( 134 seriesName = createSeriesName(
133 breakPoint1, 135 breakPoint1,
134 breakPoint2, 136 breakPoint2,
135 breakPoint3 137 breakPoint3
136 ); 138 );
139 parameter = findParameter(seriesName);
137 140
138 log.debug("next dataset is '" + seriesName + "'"); 141 log.debug("next dataset is '" + seriesName + "'");
139 series = new TimeSeries(seriesName, Minute.class); 142 series = new TimeSeries(seriesName, Minute.class);
140 } 143 }
141 144
142 addValue(row, series); 145 addValue(row, series);
146 storeMaxRange(row.getDouble("YORDINATE"), parameter);
143 endPos++; 147 endPos++;
144 } 148 }
145 149
146 // add the last dataset if existing to plot and prepare its axis 150 // add the last dataset if existing to plot and prepare its axis
147 startDate = results[startPos].getDate("XORDINATE"); 151 startDate = results[startPos].getDate("XORDINATE");
148 endDate = results[endPos-1].getDate("XORDINATE"); 152 endDate = results[endPos-1].getDate("XORDINATE");
149 addGaps(results, series, startDate, endDate, startPos, endPos); 153 addGaps(results, series, startDate, endDate, startPos, endPos);
150 addSeries(series, seriesName, idx); 154 addSeries(series, parameter, idx);
151 155
152 addDatasets(); 156 addDatasets();
153 } 157 }
154 158
155 159
159 row.getDouble("YORDINATE") 163 row.getDouble("YORDINATE")
160 ); 164 );
161 } 165 }
162 166
163 167
164 protected void addSeries(Series series, String label, int idx) { 168 protected void addSeries(Series series, String parameter, int idx) {
165 log.debug("add series (" + label + ")to timeseries chart"); 169 log.debug("add series (" + parameter + ")to timeseries chart");
166 170
167 if (series == null) { 171 if (series == null) {
168 log.warn("no data to add"); 172 log.warn("no data to add");
169 return; 173 return;
170 } 174 }
171 175
172 TimeSeriesCollection tsc = null; 176 TimeSeriesCollection tsc = null;
173 177
174 String parameter = findParameter(label);
175 if (datasets.containsKey(parameter)) 178 if (datasets.containsKey(parameter))
176 tsc = (TimeSeriesCollection) datasets.get(parameter); 179 tsc = (TimeSeriesCollection) datasets.get(parameter);
177 else 180 else
178 tsc = new TimeSeriesCollection(); 181 tsc = new TimeSeriesCollection();
179 182

http://dive4elements.wald.intevation.org