annotate flys-backend/src/main/java/de/intevation/flys/importer/parsers/BedHeightEpochParser.java @ 4198:1cdbd8a0c994

Added two new tables ClickableQDTable and ClickableWTable and made Ws and Qs clickable in historical discharge calculation. The new tables define listener interfaces (clicked lower or upper icon) to listen to user clicks. In addition to this, there is an enum ClickMode with NONE, SINGLE and RANGE options, which allows to specifiy, which icons are displayed in the tables. NONE means no icon for user clicks, SINGLE has 1 icon, RANGE 2 icons for lower and upper.
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 22 Oct 2012 13:31:25 +0200
parents 64b73dc1571c
children b3dd14fc13a6
rev   line source
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.importer.parsers;
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
2811
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
3 import java.math.BigDecimal;
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4
2811
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
5 import java.text.ParseException;
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
6
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import org.apache.log4j.Logger;
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8
2811
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
9 import de.intevation.flys.importer.ImportBedHeight;
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import de.intevation.flys.importer.ImportBedHeightEpoch;
2811
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
11 import de.intevation.flys.importer.ImportBedHeightEpochValue;
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13
3958
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
14 /** Parses BedHeightEpochs from csv file. */
2811
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
15 public class BedHeightEpochParser extends BedHeightParser {
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16
3958
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
17 /** Our own logger. */
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 private static final Logger log =
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 Logger.getLogger(BedHeightEpochParser.class);
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21
2811
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
22 @Override
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
23 protected ImportBedHeight newImportBedHeight(String description) {
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
24 return new ImportBedHeightEpoch(description);
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 }
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
3958
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
28 /**
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
29 * Handle a non-comment, none-Metadata line of csv file, adding
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
30 * ImportBedHeightEpochValues to the given ImportBedHeight object.
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
31 */
2811
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
32 @Override
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
33 protected void handleDataLine(ImportBedHeight obj, String line) {
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
34 String[] values = line.split(SEPERATOR_CHAR);
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35
3958
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
36 if (values == null || values.length == 0 || values[0].length() == 0) {
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
37 // There might be quite some ";" found.
2811
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
38 //log.warn("Skip invalid data line: " + line);
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
39 return;
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 }
2811
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
41
3958
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
42 BigDecimal km;
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
43
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
44 try {
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
45 km = new BigDecimal(nf.parse(values[0]).doubleValue());
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
46 }
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
47 catch (ParseException e) {
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
48 log.warn("Error while parsing number from data row: " + line);
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
49 return;
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
50 }
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
51
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
52
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
53 // Handle "gap" lines like '255,0;'
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
54 if (values.length < 2) {
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
55 ImportBedHeightEpochValue value = new ImportBedHeightEpochValue(
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
56 km,
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
57 null
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
58 );
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
59
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
60 obj.addValue(value);
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
61 return;
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
62 }
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
63
2811
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
64 try {
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
65 ImportBedHeightEpochValue value = new ImportBedHeightEpochValue(
3958
64b73dc1571c fix issue863: Handle missing data points for epoch bed height data.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3955
diff changeset
66 km,
2811
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
67 new BigDecimal(nf.parse(values[1]).doubleValue())
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
68 );
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
69
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
70 obj.addValue(value);
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
71 }
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
72 catch (ParseException e) {
8926571e47fb Finished importing MINFO bed heights (single and epoch).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2806
diff changeset
73 log.warn("Error while parsing number from data row: " + line);
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 }
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 }
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 }
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org