Mercurial > dive4elements > gnv-client
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 |