annotate artifacts/src/main/java/org/dive4elements/river/exports/process/FixDerivedProcessor.java @ 8354:9f9857f6c464

Added y axis label to discharge processors.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 01 Oct 2014 13:40:04 +0200
parents de280599dd2f
children 2cabecf27ccc
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 }
de280599dd2f Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
71 }
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 @Override
de280599dd2f Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
74 public boolean canHandle(String facettype) {
de280599dd2f Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
75 return FIX_DERIVATE_CURVE.equals(facettype);
de280599dd2f Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76 }
8354
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
77
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
78 @Override
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
79 public String getAxisLabel(DiagramGenerator generator) {
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
80 CallMeta meta = generator.getCallContext().getMeta();
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
81 RiverAccess access = new RiverAccess((D4EArtifact)generator.getMaster());
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
82 String unit = access.getRiver().getWstUnit().getName();
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
83
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
84 if (yAxisLabel != null && !yAxisLabel.isEmpty()) {
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
85 return Resources.getMsg(
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
86 meta,
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
87 yAxisLabel,
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
88 new Object[] { unit });
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
89 }
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
90 return Resources.getMsg(
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
91 meta,
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
92 I18N_AXIS_LABEL,
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
93 new Object[] { unit });
9f9857f6c464 Added y axis label to discharge processors.
Raimund Renkert <rrenkert@intevation.de>
parents: 8207
diff changeset
94 }
8207
de280599dd2f Added new processor for fix derived curve.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
95 }

http://dive4elements.wald.intevation.org