Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/chart/TimeSeriesChart.java @ 526:4cbcc130cffc
Copied method from JFreeChart to adapt date formats.
gnv-artifacts/trunk@622 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 25 Jan 2010 16:15:31 +0000 |
parents | d9d933e06875 |
children | 83f8f98a4f11 |
comparison
equal
deleted
inserted
replaced
525:0eba2f032e0d | 526:4cbcc130cffc |
---|---|
5 import de.intevation.gnv.geobackend.base.Result; | 5 import de.intevation.gnv.geobackend.base.Result; |
6 | 6 |
7 import de.intevation.gnv.state.describedata.KeyValueDescibeData; | 7 import de.intevation.gnv.state.describedata.KeyValueDescibeData; |
8 | 8 |
9 import de.intevation.gnv.timeseries.gap.TimeGap; | 9 import de.intevation.gnv.timeseries.gap.TimeGap; |
10 | |
11 import java.text.DateFormat; | |
12 import java.text.SimpleDateFormat; | |
10 | 13 |
11 import java.util.Collection; | 14 import java.util.Collection; |
12 import java.util.Date; | 15 import java.util.Date; |
13 import java.util.HashMap; | 16 import java.util.HashMap; |
14 import java.util.Iterator; | 17 import java.util.Iterator; |
20 import org.jfree.chart.ChartFactory; | 23 import org.jfree.chart.ChartFactory; |
21 import org.jfree.chart.ChartTheme; | 24 import org.jfree.chart.ChartTheme; |
22 | 25 |
23 import org.jfree.chart.axis.Axis; | 26 import org.jfree.chart.axis.Axis; |
24 import org.jfree.chart.axis.DateAxis; | 27 import org.jfree.chart.axis.DateAxis; |
28 import org.jfree.chart.axis.DateTickUnit; | |
29 import org.jfree.chart.axis.DateTickUnitType; | |
30 import org.jfree.chart.axis.TickUnits; | |
31 import org.jfree.chart.axis.TickUnitSource; | |
32 import org.jfree.chart.axis.ValueAxis; | |
25 | 33 |
26 import org.jfree.chart.plot.PlotOrientation; | 34 import org.jfree.chart.plot.PlotOrientation; |
27 import org.jfree.chart.plot.XYPlot; | 35 import org.jfree.chart.plot.XYPlot; |
28 | 36 |
29 import org.jfree.data.general.Series; | 37 import org.jfree.data.general.Series; |
223 } | 231 } |
224 } | 232 } |
225 | 233 |
226 | 234 |
227 protected void localizeDomainAxis(Axis axis, Locale locale) { | 235 protected void localizeDomainAxis(Axis axis, Locale locale) { |
228 // do nothing | 236 ((ValueAxis)axis).setStandardTickUnits(createStandardDateTickUnits( |
237 TimeZone.getDefault(), | |
238 locale)); | |
239 } | |
240 | |
241 | |
242 public static TickUnitSource createStandardDateTickUnits( | |
243 TimeZone zone, | |
244 Locale locale) | |
245 { | |
246 /* | |
247 * This method have been copied from JFreeChart's DateAxis class. | |
248 * DateFormat objects are hard coded in DateAxis and cannot be adjusted. | |
249 */ | |
250 if (zone == null) { | |
251 throw new IllegalArgumentException("Null 'zone' argument."); | |
252 } | |
253 if (locale == null) { | |
254 throw new IllegalArgumentException("Null 'locale' argument."); | |
255 } | |
256 TickUnits units = new TickUnits(); | |
257 | |
258 // date formatters | |
259 DateFormat f1 = new SimpleDateFormat("HH:mm:ss.SSS", locale); | |
260 DateFormat f2 = new SimpleDateFormat("HH:mm:ss", locale); | |
261 DateFormat f3 = new SimpleDateFormat("HH:mm", locale); | |
262 DateFormat f4 = new SimpleDateFormat("d-MMM, HH:mm", locale); | |
263 DateFormat f5 = new SimpleDateFormat("d-MMM yyyy", locale); | |
264 DateFormat f6 = new SimpleDateFormat("MMM-yyyy", locale); | |
265 DateFormat f7 = new SimpleDateFormat("yyyy", locale); | |
266 | |
267 f1.setTimeZone(zone); | |
268 f2.setTimeZone(zone); | |
269 f3.setTimeZone(zone); | |
270 f4.setTimeZone(zone); | |
271 f5.setTimeZone(zone); | |
272 f6.setTimeZone(zone); | |
273 f7.setTimeZone(zone); | |
274 | |
275 // milliseconds | |
276 units.add(new DateTickUnit(DateTickUnitType.MILLISECOND, 1, f1)); | |
277 units.add(new DateTickUnit(DateTickUnitType.MILLISECOND, 5, | |
278 DateTickUnitType.MILLISECOND, 1, f1)); | |
279 units.add(new DateTickUnit(DateTickUnitType.MILLISECOND, 10, | |
280 DateTickUnitType.MILLISECOND, 1, f1)); | |
281 units.add(new DateTickUnit(DateTickUnitType.MILLISECOND, 25, | |
282 DateTickUnitType.MILLISECOND, 5, f1)); | |
283 units.add(new DateTickUnit(DateTickUnitType.MILLISECOND, 50, | |
284 DateTickUnitType.MILLISECOND, 10, f1)); | |
285 units.add(new DateTickUnit(DateTickUnitType.MILLISECOND, 100, | |
286 DateTickUnitType.MILLISECOND, 10, f1)); | |
287 units.add(new DateTickUnit(DateTickUnitType.MILLISECOND, 250, | |
288 DateTickUnitType.MILLISECOND, 10, f1)); | |
289 units.add(new DateTickUnit(DateTickUnitType.MILLISECOND, 500, | |
290 DateTickUnitType.MILLISECOND, 50, f1)); | |
291 | |
292 // seconds | |
293 units.add(new DateTickUnit(DateTickUnitType.SECOND, 1, | |
294 DateTickUnitType.MILLISECOND, 50, f2)); | |
295 units.add(new DateTickUnit(DateTickUnitType.SECOND, 5, | |
296 DateTickUnitType.SECOND, 1, f2)); | |
297 units.add(new DateTickUnit(DateTickUnitType.SECOND, 10, | |
298 DateTickUnitType.SECOND, 1, f2)); | |
299 units.add(new DateTickUnit(DateTickUnitType.SECOND, 30, | |
300 DateTickUnitType.SECOND, 5, f2)); | |
301 | |
302 // minutes | |
303 units.add(new DateTickUnit(DateTickUnitType.MINUTE, 1, | |
304 DateTickUnitType.SECOND, 5, f3)); | |
305 units.add(new DateTickUnit(DateTickUnitType.MINUTE, 2, | |
306 DateTickUnitType.SECOND, 10, f3)); | |
307 units.add(new DateTickUnit(DateTickUnitType.MINUTE, 5, | |
308 DateTickUnitType.MINUTE, 1, f3)); | |
309 units.add(new DateTickUnit(DateTickUnitType.MINUTE, 10, | |
310 DateTickUnitType.MINUTE, 1, f3)); | |
311 units.add(new DateTickUnit(DateTickUnitType.MINUTE, 15, | |
312 DateTickUnitType.MINUTE, 5, f3)); | |
313 units.add(new DateTickUnit(DateTickUnitType.MINUTE, 20, | |
314 DateTickUnitType.MINUTE, 5, f3)); | |
315 units.add(new DateTickUnit(DateTickUnitType.MINUTE, 30, | |
316 DateTickUnitType.MINUTE, 5, f3)); | |
317 | |
318 // hours | |
319 units.add(new DateTickUnit(DateTickUnitType.HOUR, 1, | |
320 DateTickUnitType.MINUTE, 5, f3)); | |
321 units.add(new DateTickUnit(DateTickUnitType.HOUR, 2, | |
322 DateTickUnitType.MINUTE, 10, f3)); | |
323 units.add(new DateTickUnit(DateTickUnitType.HOUR, 4, | |
324 DateTickUnitType.MINUTE, 30, f3)); | |
325 units.add(new DateTickUnit(DateTickUnitType.HOUR, 6, | |
326 DateTickUnitType.HOUR, 1, f3)); | |
327 units.add(new DateTickUnit(DateTickUnitType.HOUR, 12, | |
328 DateTickUnitType.HOUR, 1, f4)); | |
329 | |
330 // days | |
331 units.add(new DateTickUnit(DateTickUnitType.DAY, 1, | |
332 DateTickUnitType.HOUR, 1, f5)); | |
333 units.add(new DateTickUnit(DateTickUnitType.DAY, 2, | |
334 DateTickUnitType.HOUR, 1, f5)); | |
335 units.add(new DateTickUnit(DateTickUnitType.DAY, 7, | |
336 DateTickUnitType.DAY, 1, f5)); | |
337 units.add(new DateTickUnit(DateTickUnitType.DAY, 15, | |
338 DateTickUnitType.DAY, 1, f5)); | |
339 | |
340 // months | |
341 units.add(new DateTickUnit(DateTickUnitType.MONTH, 1, | |
342 DateTickUnitType.DAY, 1, f6)); | |
343 units.add(new DateTickUnit(DateTickUnitType.MONTH, 2, | |
344 DateTickUnitType.DAY, 1, f6)); | |
345 units.add(new DateTickUnit(DateTickUnitType.MONTH, 3, | |
346 DateTickUnitType.MONTH, 1, f6)); | |
347 units.add(new DateTickUnit(DateTickUnitType.MONTH, 4, | |
348 DateTickUnitType.MONTH, 1, f6)); | |
349 units.add(new DateTickUnit(DateTickUnitType.MONTH, 6, | |
350 DateTickUnitType.MONTH, 1, f6)); | |
351 | |
352 // years | |
353 units.add(new DateTickUnit(DateTickUnitType.YEAR, 1, | |
354 DateTickUnitType.MONTH, 1, f7)); | |
355 units.add(new DateTickUnit(DateTickUnitType.YEAR, 2, | |
356 DateTickUnitType.MONTH, 3, f7)); | |
357 units.add(new DateTickUnit(DateTickUnitType.YEAR, 5, | |
358 DateTickUnitType.YEAR, 1, f7)); | |
359 units.add(new DateTickUnit(DateTickUnitType.YEAR, 10, | |
360 DateTickUnitType.YEAR, 1, f7)); | |
361 units.add(new DateTickUnit(DateTickUnitType.YEAR, 25, | |
362 DateTickUnitType.YEAR, 5, f7)); | |
363 units.add(new DateTickUnit(DateTickUnitType.YEAR, 50, | |
364 DateTickUnitType.YEAR, 10, f7)); | |
365 units.add(new DateTickUnit(DateTickUnitType.YEAR, 100, | |
366 DateTickUnitType.YEAR, 20, f7)); | |
367 | |
368 return units; | |
229 } | 369 } |
230 | 370 |
231 | 371 |
232 protected String getMessage(Locale locale, String key, String def) { | 372 protected String getMessage(Locale locale, String key, String def) { |
233 return RessourceFactory.getInstance().getRessource(locale, key, def); | 373 return RessourceFactory.getInstance().getRessource(locale, key, def); |