Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/process/BedHeightProcessor.java @ 9617:1d4262a68f1f
#12 Minuend/Subtrahend + MergeConflict #19 CollisionCalculation
author | dnt_bjoernsen <d.tironi@bjoernsen.de> |
---|---|
date | Thu, 10 Oct 2019 15:29:02 +0200 |
parents | 9b8e8fc1f408 |
children |
comparison
equal
deleted
inserted
replaced
9616:cedcee24a21a | 9617:1d4262a68f1f |
---|---|
9 package org.dive4elements.river.exports.process; | 9 package org.dive4elements.river.exports.process; |
10 | 10 |
11 import java.util.Map; | 11 import java.util.Map; |
12 | 12 |
13 import org.apache.log4j.Logger; | 13 import org.apache.log4j.Logger; |
14 import org.jfree.data.xy.XYSeries; | |
15 | |
16 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; | 14 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
17 import org.dive4elements.artifacts.CallContext; | 15 import org.dive4elements.artifacts.CallContext; |
18 import org.dive4elements.artifacts.CallMeta; | 16 import org.dive4elements.artifacts.CallMeta; |
19 | |
20 import org.dive4elements.river.artifacts.resources.Resources; | |
21 import org.dive4elements.river.artifacts.D4EArtifact; | 17 import org.dive4elements.river.artifacts.D4EArtifact; |
22 import org.dive4elements.river.artifacts.access.RiverAccess; | 18 import org.dive4elements.river.artifacts.access.RiverAccess; |
23 import org.dive4elements.river.artifacts.model.FacetTypes; | 19 import org.dive4elements.river.artifacts.model.FacetTypes; |
24 import org.dive4elements.river.exports.XYChartGenerator; | 20 import org.dive4elements.river.artifacts.resources.Resources; |
25 import org.dive4elements.river.exports.DiagramGenerator; | 21 import org.dive4elements.river.exports.DiagramGenerator; |
26 import org.dive4elements.river.exports.StyledSeriesBuilder; | 22 import org.dive4elements.river.exports.StyledSeriesBuilder; |
23 import org.dive4elements.river.exports.XYChartGenerator; | |
27 import org.dive4elements.river.jfree.StyledXYSeries; | 24 import org.dive4elements.river.jfree.StyledXYSeries; |
28 import org.dive4elements.river.themes.ThemeDocument; | 25 import org.dive4elements.river.themes.ThemeDocument; |
26 import org.jfree.data.xy.XYSeries; | |
29 | 27 |
30 public class BedHeightProcessor extends DefaultProcessor { | 28 public class BedHeightProcessor extends DefaultProcessor { |
31 | 29 |
32 private final static Logger log = | 30 private final static Logger log = Logger.getLogger(BedHeightProcessor.class); |
33 Logger.getLogger(BedHeightProcessor.class); | |
34 | 31 |
35 public static final String I18N_AXIS_LABEL = | 32 public static final String I18N_AXIS_LABEL = "chart.bedheight_middle.section.yaxis.label"; |
36 "chart.bedheight_middle.section.yaxis.label"; | |
37 | 33 |
38 public final static String FACET_BED_HEIGHTS_MIN = "bedheight_min"; | 34 public final static String FACET_BED_HEIGHTS_MIN = "bedheight_min"; |
39 | 35 |
40 public final static String FACET_BED_HEIGHTS_MAX = "bedheight_min"; | 36 public final static String FACET_BED_HEIGHTS_MAX = "bedheight_min"; |
41 | 37 |
42 protected static final double GAP_TOLERANCE = 0.101d; | 38 protected static final double GAP_TOLERANCE = 0.101d; |
43 | 39 |
44 protected String yAxisLabel; | 40 protected String yAxisLabel; |
45 | 41 |
46 @Override | 42 @Override |
47 public void doOut( | 43 public void doOut(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { |
48 DiagramGenerator generator, | 44 final XYSeries series = prepareSeries(bundle, theme, generator.getContext()); |
49 ArtifactAndFacet bundle, | |
50 ThemeDocument theme, | |
51 boolean visible) { | |
52 XYSeries series = prepareSeries( | |
53 bundle, theme, generator.getContext()); | |
54 if (series != null) { | 45 if (series != null) { |
55 generator.addAxisSeries(series, axisName, visible); | 46 generator.addAxisSeries(series, this.axisName, visible); |
56 } | 47 } |
57 } | 48 } |
58 | 49 |
59 @Override | 50 @Override |
60 public void doOut( | 51 public void doOut(final XYChartGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible, final int index) { |
61 XYChartGenerator generator, | 52 final XYSeries series = prepareSeries(bundle, theme, generator.getContext()); |
62 ArtifactAndFacet bundle, | |
63 ThemeDocument theme, | |
64 boolean visible, | |
65 int index | |
66 ) { | |
67 XYSeries series = prepareSeries( | |
68 bundle, theme, generator.getContext()); | |
69 if (series != null) { | 53 if (series != null) { |
70 generator.addAxisSeries(series, index, visible); | 54 generator.addAxisSeries(series, index, visible); |
71 } | 55 } |
72 } | 56 } |
73 | 57 |
74 /** Prepare an series, independent of axis. */ | 58 /** Prepare an series, independent of axis. */ |
75 private XYSeries prepareSeries( | 59 private XYSeries prepareSeries(final ArtifactAndFacet bundle, final ThemeDocument theme, final CallContext context) { |
76 ArtifactAndFacet bundle, | 60 final Map<String, String> metaData = bundle.getFacet().getMetaData(bundle.getArtifact(), context); |
77 ThemeDocument theme, | 61 final StyledXYSeries series = new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(), theme); |
78 CallContext context | |
79 ) { | |
80 Map<String, String> metaData = bundle.getFacet().getMetaData( | |
81 bundle.getArtifact(), context); | |
82 StyledXYSeries series = new StyledXYSeries(bundle.getFacetName(), bundle.getFacetDescription(), | |
83 theme); | |
84 series.putMetaData(metaData, bundle.getArtifact(), context); | 62 series.putMetaData(metaData, bundle.getArtifact(), context); |
85 yAxisLabel = metaData.get("Y"); | 63 this.yAxisLabel = metaData.get("Y"); |
86 | 64 |
87 Object raw = bundle.getData(context); | 65 final Object raw = bundle.getData(context); |
88 if (raw == null) { | 66 if (raw == null) { |
89 return null; | 67 return null; |
90 } | 68 } |
91 if (!(raw instanceof double[][])) { | 69 if (!(raw instanceof double[][])) { |
92 log.error("Unkown datatype: " + raw.getClass().getName()); | 70 log.error("Unkown datatype: " + raw.getClass().getName()); |
93 return null; | 71 return null; |
94 } | 72 } |
95 | 73 |
96 double[][] data = (double[][])raw; | 74 final double[][] data = (double[][]) raw; |
97 StyledSeriesBuilder.addPoints(series, | 75 StyledSeriesBuilder.addPoints(series, data, false, GAP_TOLERANCE); |
98 data, | |
99 false, | |
100 GAP_TOLERANCE); | |
101 return series; | 76 return series; |
102 } | 77 } |
103 | 78 |
104 | |
105 @Override | 79 @Override |
106 public boolean canHandle(String facetType) { | 80 public boolean canHandle(final String facetType) { |
107 return FacetTypes.BEDHEIGHT.equals(facetType) | 81 return FacetTypes.BEDHEIGHT.equals(facetType) || FACET_BED_HEIGHTS_MIN.equals(facetType) || FACET_BED_HEIGHTS_MAX.equals(facetType) |
108 || FACET_BED_HEIGHTS_MIN.equals(facetType) | 82 || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1.equals(facetType) || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT2.equals(facetType) |
109 || FACET_BED_HEIGHTS_MAX.equals(facetType) | 83 || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1_FILTERED.equals(facetType) || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT2_FILTERED.equals(facetType); |
110 || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1.equals(facetType) | |
111 || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT2.equals(facetType) | |
112 || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1_FILTERED.equals( | |
113 facetType) | |
114 || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT2_FILTERED.equals( | |
115 facetType); | |
116 } | 84 } |
117 | 85 |
118 @Override | 86 @Override |
119 public String getAxisLabel(DiagramGenerator generator) { | 87 public String getAxisLabel(final DiagramGenerator generator) { |
120 D4EArtifact flys = (D4EArtifact) generator.getMaster(); | 88 final D4EArtifact flys = (D4EArtifact) generator.getMaster(); |
121 String unit = new RiverAccess(flys).getRiver().getWstUnit().getName(); | 89 final String unit = new RiverAccess(flys).getRiver().getWstUnit().getName(); |
122 | 90 |
123 CallMeta meta = generator.getContext().getMeta(); | 91 final CallMeta meta = generator.getContext().getMeta(); |
124 | 92 |
125 if (yAxisLabel != null && !yAxisLabel.isEmpty()) { | 93 if (this.yAxisLabel != null && !this.yAxisLabel.isEmpty()) { |
126 return Resources.getMsg( | 94 return Resources.getMsg(meta, this.yAxisLabel, new Object[] { unit }); |
127 meta, | |
128 yAxisLabel, | |
129 new Object[] {unit}); | |
130 } | 95 } |
131 return Resources.getMsg( | 96 return Resources.getMsg(meta, I18N_AXIS_LABEL, new Object[] { unit }); |
132 meta, | |
133 I18N_AXIS_LABEL, | |
134 new Object[] { unit }); | |
135 } | 97 } |
136 } | 98 } |