Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/chart/VerticalProfileChartFactory.java @ 232:3d6d89bcbf42
Added special Data-Selection to the ODV-Exports of TimeSeries on TimeSeriesPoints. issue68
gnv-artifacts/trunk@300 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Mon, 09 Nov 2009 08:55:01 +0000 |
parents | 34f233123a6f |
children | e964a3d8f7bc |
comparison
equal
deleted
inserted
replaced
231:74255064a4c5 | 232:3d6d89bcbf42 |
---|---|
210 } | 210 } |
211 | 211 |
212 protected XYSeries createXYSeries(String seriesName, | 212 protected XYSeries createXYSeries(String seriesName, |
213 Collection<Result> resultSet, | 213 Collection<Result> resultSet, |
214 int lUpperCut, int lLowerCut, int pStart, | 214 int lUpperCut, int lLowerCut, int pStart, |
215 int pEnd) throws TechnicalChartException { | 215 int pEnd, double maxGap) throws TechnicalChartException { |
216 if (sDebug) | 216 if (sDebug) |
217 sLogger.debug("createXYSeries()"); | 217 sLogger.debug("createXYSeries()"); |
218 XYSeries series = new XYSeries(seriesName); | 218 XYSeries series = new XYSeries(seriesName); |
219 try { | 219 try { |
220 double xValue = 0; | 220 double xValue = 0; |
260 String break1, break2, break3; | 260 String break1, break2, break3; |
261 int mStart = 0; | 261 int mStart = 0; |
262 int mEnd = 0; | 262 int mEnd = 0; |
263 | 263 |
264 Iterator<Result> resultIterator = resultSet.iterator(); | 264 Iterator<Result> resultIterator = resultSet.iterator(); |
265 Result firstRow = null, lastRow = null; | |
266 | |
267 double maxGap; | |
265 if (resultIterator.hasNext()) { | 268 if (resultIterator.hasNext()) { |
266 // Row row = new Row(sArrayStrLine); | 269 // Row row = new Row(sArrayStrLine); |
267 Result row = resultIterator.next(); | 270 Result row = resultIterator.next(); |
268 | 271 |
272 firstRow = row; | |
273 lastRow = row; | |
274 | |
269 break1 = row.getString("GROUP1"); // 2 | 275 break1 = row.getString("GROUP1"); // 2 |
270 break2 = row.getString("GROUP2"); // 3 | 276 break2 = row.getString("GROUP2"); // 3 |
271 break3 = row.getString("GROUP3"); // 4 | 277 break3 = row.getString("GROUP3"); // 4 |
272 int i = 1; | 278 int i = 1; |
273 while (resultIterator.hasNext()) { | 279 while (resultIterator.hasNext()) { |
274 row = resultIterator.next(); | 280 row = resultIterator.next(); |
281 | |
275 if (!break1.equals(row.getString("GROUP1")) | 282 if (!break1.equals(row.getString("GROUP1")) |
276 || !break2.equals(row.getString("GROUP2")) | 283 || !break2.equals(row.getString("GROUP2")) |
277 || !break3.equals(row.getString("GROUP3"))) { | 284 || !break3.equals(row.getString("GROUP3"))) { |
278 String seriesName = this.createSeriesName(parameters, measurements, dates, break1, break2, break3); | 285 String seriesName = this.createSeriesName(parameters, measurements, dates, break1, break2, break3); |
279 sLogger.debug("Neuer Datensatz " + seriesName | 286 sLogger.debug("Neuer Datensatz " + seriesName |
280 + "von Datensätzen " + mStart + " / " | 287 + "von Datensätzen " + mStart + " / " |
281 + mEnd); | 288 + mEnd); |
289 | |
290 maxGap = this.calculateMaxGap(firstRow, lastRow, mEnd-mStart); | |
291 | |
282 xyDataset.addSeries(createXYSeries(seriesName, | 292 xyDataset.addSeries(createXYSeries(seriesName, |
283 resultSet, lUpperCut, lLowerCut, mStart, mEnd)); | 293 resultSet, lUpperCut, lLowerCut, mStart, mEnd,maxGap)); |
294 firstRow = row; | |
284 mStart = i; | 295 mStart = i; |
285 | 296 |
286 break1 = row.getString("GROUP1"); | 297 break1 = row.getString("GROUP1"); |
287 break2 = row.getString("GROUP2"); // 3 | 298 break2 = row.getString("GROUP2"); // 3 |
288 break3 = row.getString("GROUP3"); // 4 | 299 break3 = row.getString("GROUP3"); // 4 |
289 | 300 |
290 } | 301 } |
302 lastRow = row; | |
291 mEnd = i; | 303 mEnd = i; |
292 // mEnd ++; | 304 // mEnd ++; |
293 i = i + 1; | 305 i = i + 1; |
294 } | 306 } |
295 | 307 |
296 String seriesName = this.createSeriesName(parameters, measurements, dates, break1, break2, break3); | 308 String seriesName = this.createSeriesName(parameters, measurements, dates, break1, break2, break3); |
297 sLogger.debug("Neuer Datensatz " + seriesName | 309 sLogger.debug("Neuer Datensatz " + seriesName |
298 + "von Datensätzen " + mStart + " / " + mEnd); | 310 + "von Datensätzen " + mStart + " / " + mEnd); |
311 | |
312 maxGap = this.calculateMaxGap(firstRow, lastRow, mEnd-mStart); | |
299 xyDataset.addSeries(createXYSeries(seriesName, resultSet, | 313 xyDataset.addSeries(createXYSeries(seriesName, resultSet, |
300 lUpperCut, lLowerCut, mStart, mEnd)); | 314 lUpperCut, lLowerCut, mStart, mEnd,maxGap)); |
301 }else{ | 315 }else{ |
302 xyDataset.addSeries(createXYSeries("", | 316 xyDataset.addSeries(createXYSeries("", |
303 resultSet, lUpperCut, lLowerCut, mStart, mEnd)); | 317 resultSet, lUpperCut, lLowerCut, mStart, mEnd,9999)); |
304 } | 318 } |
305 } catch (Exception e) { | 319 } catch (Exception e) { |
306 sLogger.error(e.getMessage(), e); | 320 sLogger.error(e.getMessage(), e); |
307 } finally { | 321 } finally { |
308 } | 322 } |
309 return xyDataset; | 323 return xyDataset; |
324 } | |
325 | |
326 | |
327 protected double calculateMaxGap(Result firstRow, Result lastRow, int numResults){ | |
328 | |
329 double firstValue = firstRow.getDouble("YORDINATE"); | |
330 // TODO Implement me. Hier ist die zentrale Frage wie wir zwischen Netzen und | |
331 // anderen Datenquellen unterscheiden. | |
332 return 0; | |
310 } | 333 } |
311 | 334 |
312 /** | 335 /** |
313 * @param parameters | 336 * @param parameters |
314 * @param measurements | 337 * @param measurements |