Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/process/FixDerivedProcessor.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 | 8c60595fd74c |
children | 5e38e2924c07 |
rev | line source |
---|---|
8207
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 package org.dive4elements.river.exports.process; |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 |
8354
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
3 import java.util.Map; |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
4 |
8207
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 import org.apache.log4j.Logger; |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
8354
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
7 import org.dive4elements.artifacts.CallContext; |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
8 import org.dive4elements.artifacts.CallMeta; |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
9 import org.dive4elements.river.artifacts.D4EArtifact; |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
10 import org.dive4elements.river.artifacts.access.RiverAccess; |
8207
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import org.dive4elements.river.artifacts.model.FacetTypes; |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import org.dive4elements.river.artifacts.model.fixings.FixDerivateFacet; |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 import org.dive4elements.river.artifacts.model.fixings.FixFunction; |
8354
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
14 import org.dive4elements.river.artifacts.resources.Resources; |
8207
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 import org.dive4elements.river.exports.DiagramGenerator; |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 import org.dive4elements.river.jfree.JFreeUtil; |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 import org.dive4elements.river.jfree.StyledXYSeries; |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 import org.dive4elements.river.themes.ThemeDocument; |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 public class FixDerivedProcessor |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 extends DefaultProcessor |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 implements FacetTypes |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 { |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 private static Logger log = Logger.getLogger(FixDerivedProcessor.class); |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 |
8354
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
28 private String yAxisLabel = ""; |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
29 |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
30 private String I18N_AXIS_LABEL = "chart.discharge.curve.yaxis.label"; |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
31 |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
32 |
8207
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 public FixDerivedProcessor() { |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 } |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 @Override |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 public void doOut( |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 DiagramGenerator generator, |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 ArtifactAndFacet bundle, |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 ThemeDocument theme, |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 boolean visible |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 ) { |
8354
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
43 CallContext context = generator.getCallContext(); |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
44 Map<String, String> metaData = bundle.getFacet().getMetaData( |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
45 bundle.getArtifact(), context); |
8207
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 FixDerivateFacet facet = (FixDerivateFacet)bundle.getFacet(); |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 FixFunction func = (FixFunction)facet.getData( |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 bundle.getArtifact(), generator.getCallContext()); |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 |
8354
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
50 yAxisLabel = metaData.get("Y"); |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
51 |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
52 |
8207
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 if (func == null) { |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 log.warn("doOut: Facet does not contain FixFunction"); |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 return; |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 } |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 double maxQ = func.getMaxQ(); |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 if (maxQ > 0) { |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 StyledXYSeries series = JFreeUtil.sampleFunction2D( |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 func.getFunction(), |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 theme, |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 bundle.getFacetDescription(), |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 500, // number of samples |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 0.0 , // start |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 maxQ); // end |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 generator.addAxisSeries(series, axisName, visible); |
8354
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
69 series.putMetaData(metaData, bundle.getArtifact(), context); |
8207
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 } |
8374
2cabecf27ccc
Added km sub title to fix derivate curve, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
8354
diff
changeset
|
71 |
8207
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 } |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 @Override |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 public boolean canHandle(String facettype) { |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 return FIX_DERIVATE_CURVE.equals(facettype); |
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 } |
8354
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
78 |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
79 @Override |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
80 public String getAxisLabel(DiagramGenerator generator) { |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
81 CallMeta meta = generator.getCallContext().getMeta(); |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
82 RiverAccess access = new RiverAccess((D4EArtifact)generator.getMaster()); |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
83 String unit = access.getRiver().getWstUnit().getName(); |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
84 |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
85 if (yAxisLabel != null && !yAxisLabel.isEmpty()) { |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
86 return Resources.getMsg( |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
87 meta, |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
88 yAxisLabel, |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
89 new Object[] { unit }); |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
90 } |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
91 return Resources.getMsg( |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
92 meta, |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
93 I18N_AXIS_LABEL, |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
94 new Object[] { unit }); |
9f9857f6c464
Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents:
8207
diff
changeset
|
95 } |
8207
de280599dd2f
Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 } |