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 }

http://dive4elements.wald.intevation.org