Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/process/BedQualityDiameterProcessor.java @ 8472:3f505fba522f
(issue1772) Use 0.001km tolarance instead of 0.1 to find matching km.
There is no sense to use a define here. I will not write
static final double NULLPOINTNULLNULLONE=0.001 if i just want to use that
value and not any other value which may make sense in some other place.
Using hardcoded values can have its merits and makes the code easier to
read.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Tue, 18 Nov 2014 15:24:40 +0100 |
parents | 48d4921665e3 |
children | 36faef4f8acb |
rev | line source |
---|---|
7148
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
3 * |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
7 */ |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
8 |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.exports.process; |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
10 |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7159
diff
changeset
|
11 import java.util.Map; |
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7159
diff
changeset
|
12 |
7148
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
13 import org.apache.log4j.Logger; |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
14 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
15 import org.dive4elements.artifacts.CallContext; |
8260
48d4921665e3
Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents:
8202
diff
changeset
|
16 import org.dive4elements.artifacts.CallMeta; |
48d4921665e3
Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents:
8202
diff
changeset
|
17 |
48d4921665e3
Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents:
8202
diff
changeset
|
18 import org.dive4elements.river.artifacts.resources.Resources; |
7148
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
19 import org.dive4elements.river.artifacts.model.FacetTypes; |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
20 import org.dive4elements.river.exports.DiagramGenerator; |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
21 import org.dive4elements.river.exports.StyledSeriesBuilder; |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
22 import org.dive4elements.river.jfree.StyledXYSeries; |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
23 import org.dive4elements.river.themes.ThemeDocument; |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
24 |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
25 public class BedQualityDiameterProcessor extends DefaultProcessor { |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
26 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8001
diff
changeset
|
27 private final static Logger log = |
7148
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
28 Logger.getLogger(BedQualityDiameterProcessor.class); |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
29 |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
30 public static final String I18N_AXIS_LABEL = |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
31 "chart.bedquality.yaxis.label.diameter"; |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
32 |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7159
diff
changeset
|
33 protected String yAxisLabel; |
7148
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
34 @Override |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
35 public void doOut( |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
36 DiagramGenerator generator, |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
37 ArtifactAndFacet bundle, |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
38 ThemeDocument theme, |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
39 boolean visible) { |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
40 CallContext context = generator.getCallContext(); |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7159
diff
changeset
|
41 Map<String, String> metaData = bundle.getFacet().getMetaData(); |
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7159
diff
changeset
|
42 StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(), |
7148
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
43 theme); |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7159
diff
changeset
|
44 series.putMetaData(metaData, bundle.getArtifact(), context); |
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7159
diff
changeset
|
45 yAxisLabel = metaData.get("Y"); |
7148
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
46 Object data = bundle.getData(context); |
8001
5277483044d9
Fixed NPE when loading folders from datacage.
Raimund Renkert <rrenkert@intevation.de>
parents:
7987
diff
changeset
|
47 if (data == null) { |
5277483044d9
Fixed NPE when loading folders from datacage.
Raimund Renkert <rrenkert@intevation.de>
parents:
7987
diff
changeset
|
48 return; |
5277483044d9
Fixed NPE when loading folders from datacage.
Raimund Renkert <rrenkert@intevation.de>
parents:
7987
diff
changeset
|
49 } |
7987
98ca61cb58fb
Split bed quality facets and updated processors and state.
Raimund Renkert <rrenkert@intevation.de>
parents:
7892
diff
changeset
|
50 if (!(data instanceof double[][])) { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8001
diff
changeset
|
51 log.error("Unknown data type: " + data.getClass().getName()); |
7148
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
52 return; |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
53 } |
7987
98ca61cb58fb
Split bed quality facets and updated processors and state.
Raimund Renkert <rrenkert@intevation.de>
parents:
7892
diff
changeset
|
54 double[][] values = (double[][])data; |
98ca61cb58fb
Split bed quality facets and updated processors and state.
Raimund Renkert <rrenkert@intevation.de>
parents:
7892
diff
changeset
|
55 StyledSeriesBuilder.addPoints(series, values, true); |
7148
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
56 |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
57 generator.addAxisSeries(series, axisName, visible); |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
58 } |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
59 |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
60 @Override |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
61 public boolean canHandle(String facettype) { |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
62 return facettype.equals(FacetTypes.BED_QUALITY_BED_DIAMETER_TOPLAYER) || |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
63 facettype.equals(FacetTypes.BED_QUALITY_BED_DIAMETER_SUBLAYER) || |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
64 facettype.equals(FacetTypes.BED_QUALITY_BEDLOAD_DIAMETER) || |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
65 facettype.equals(FacetTypes.BED_DIAMETER_DATA_TOP) || |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
66 facettype.equals(FacetTypes.BED_DIAMETER_DATA_SUB) || |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
67 facettype.equals(FacetTypes.BEDLOAD_DIAMETER_DATA); |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
68 } |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
69 |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
70 @Override |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
71 public String getAxisLabel(DiagramGenerator generator) { |
8260
48d4921665e3
Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents:
8202
diff
changeset
|
72 |
48d4921665e3
Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents:
8202
diff
changeset
|
73 CallMeta meta = generator.getCallContext().getMeta(); |
48d4921665e3
Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents:
8202
diff
changeset
|
74 |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7159
diff
changeset
|
75 if (yAxisLabel != null && !yAxisLabel.isEmpty()) { |
8260
48d4921665e3
Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents:
8202
diff
changeset
|
76 return Resources.getMsg(meta, yAxisLabel); |
7892
e844be34a606
Add metadata to chart series and datasets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7159
diff
changeset
|
77 } |
8260
48d4921665e3
Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents:
8202
diff
changeset
|
78 return Resources.getMsg(meta, I18N_AXIS_LABEL); |
7148
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
79 } |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
80 } |
cde7db30847f
Add BedQuality Processors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
81 |