diff 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
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/chart/VerticalProfileChartFactory.java	Fri Nov 06 11:12:45 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/chart/VerticalProfileChartFactory.java	Mon Nov 09 08:55:01 2009 +0000
@@ -212,7 +212,7 @@
     protected XYSeries createXYSeries(String seriesName,
                                       Collection<Result> resultSet,
                                       int lUpperCut, int lLowerCut, int pStart,
-                                      int pEnd) throws TechnicalChartException {
+                                      int pEnd, double maxGap) throws TechnicalChartException {
         if (sDebug)
             sLogger.debug("createXYSeries()");
         XYSeries series = new XYSeries(seriesName);
@@ -262,16 +262,23 @@
             int mEnd = 0;
 
             Iterator<Result> resultIterator = resultSet.iterator();
+            Result firstRow = null, lastRow = null;
+            
+            double maxGap;
             if (resultIterator.hasNext()) {
                 // Row row = new Row(sArrayStrLine);
                 Result row = resultIterator.next();
-
+                
+                firstRow = row;
+                lastRow = row;
+                
                 break1 = row.getString("GROUP1"); // 2
                 break2 = row.getString("GROUP2"); // 3
                 break3 = row.getString("GROUP3"); // 4
                 int i = 1;
                 while (resultIterator.hasNext()) {
                     row = resultIterator.next();
+                    
                     if (!break1.equals(row.getString("GROUP1"))
                         || !break2.equals(row.getString("GROUP2"))
                         || !break3.equals(row.getString("GROUP3"))) {
@@ -279,8 +286,12 @@
                         sLogger.debug("Neuer Datensatz " + seriesName
                                       + "von Datensätzen " + mStart + " / "
                                       + mEnd);
+                        
+                        maxGap = this.calculateMaxGap(firstRow, lastRow, mEnd-mStart);
+                        
                         xyDataset.addSeries(createXYSeries(seriesName,
-                                resultSet, lUpperCut, lLowerCut, mStart, mEnd));
+                                resultSet, lUpperCut, lLowerCut, mStart, mEnd,maxGap));
+                        firstRow = row;
                         mStart = i;
 
                         break1 = row.getString("GROUP1");
@@ -288,6 +299,7 @@
                         break3 = row.getString("GROUP3"); // 4
 
                     }
+                    lastRow = row;
                     mEnd = i;
                     // mEnd ++;
                     i = i + 1;
@@ -296,11 +308,13 @@
                 String seriesName = this.createSeriesName(parameters, measurements, dates, break1, break2, break3);
                 sLogger.debug("Neuer Datensatz " + seriesName
                               + "von Datensätzen " + mStart + " / " + mEnd);
+                
+                maxGap = this.calculateMaxGap(firstRow, lastRow, mEnd-mStart);
                 xyDataset.addSeries(createXYSeries(seriesName, resultSet,
-                        lUpperCut, lLowerCut, mStart, mEnd));
+                        lUpperCut, lLowerCut, mStart, mEnd,maxGap));
             }else{
                 xyDataset.addSeries(createXYSeries("",
-                        resultSet, lUpperCut, lLowerCut, mStart, mEnd));
+                        resultSet, lUpperCut, lLowerCut, mStart, mEnd,9999));
             }
         } catch (Exception e) {
             sLogger.error(e.getMessage(), e);
@@ -308,6 +322,15 @@
         }
         return xyDataset;
     }
+    
+    
+    protected double calculateMaxGap(Result firstRow, Result lastRow, int numResults){
+        
+        double firstValue = firstRow.getDouble("YORDINATE"); 
+        // TODO Implement me. Hier ist die zentrale Frage wie wir zwischen Netzen und
+        // anderen Datenquellen unterscheiden.
+        return 0;
+    }
 
     /**
      * @param parameters

http://dive4elements.wald.intevation.org