comparison artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java @ 9316:72b3270e1568

U-Info salix line with regional and supraregional scenario calculation and chart display
author mschaefer
date Thu, 26 Jul 2018 17:28:32 +0200
parents 385b52ccde23
children b3d3c958a594
comparison
equal deleted inserted replaced
9315:2ff46d921917 9316:72b3270e1568
16 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; 16 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
17 import org.dive4elements.artifactdatabase.state.Facet; 17 import org.dive4elements.artifactdatabase.state.Facet;
18 import org.dive4elements.artifacts.CallContext; 18 import org.dive4elements.artifacts.CallContext;
19 import org.dive4elements.river.artifacts.D4EArtifact; 19 import org.dive4elements.river.artifacts.D4EArtifact;
20 import org.dive4elements.river.artifacts.common.AbstractCalculationResult; 20 import org.dive4elements.river.artifacts.common.AbstractCalculationResult;
21 import org.dive4elements.river.artifacts.resources.Resources;
21 import org.dive4elements.river.artifacts.uinfo.commons.UInfoResultType; 22 import org.dive4elements.river.artifacts.uinfo.commons.UInfoResultType;
22 import org.dive4elements.river.exports.DiagramGenerator; 23 import org.dive4elements.river.exports.DiagramGenerator;
23 import org.dive4elements.river.exports.StyledSeriesBuilder; 24 import org.dive4elements.river.exports.StyledSeriesBuilder;
24 import org.dive4elements.river.exports.process.DefaultProcessor; 25 import org.dive4elements.river.exports.process.DefaultProcessor;
25 import org.dive4elements.river.exports.process.WOutProcessor; 26 import org.dive4elements.river.exports.process.WOutProcessor;
34 * @author Matthias Schäfer 35 * @author Matthias Schäfer
35 * 36 *
36 */ 37 */
37 public final class SalixLineProcessor extends DefaultProcessor { 38 public final class SalixLineProcessor extends DefaultProcessor {
38 39
39 private static final String FACET_SALIX_LINE = "uinfo_facet_salix"; 40 private static final String FACET_SALIX_LINE = "uinfo_facet_salix_line";
40 41
41 private static final String FACET_SALIX_MNWMW = "uinfo_facet_mnwmw"; 42 private static final String FACET_SALIX_LINE_DESCRIPTION = "uinfo_facet_salix_line.description";
43
44 private static final String FACET_SALIX_MNWMW = "uinfo_facet_salix_mnwmw";
45
46 private static final String FACET_SALIX_MNWMW_DESCRIPTION = "uinfo_facet_salix_mnwmw.description";
47
48 public static final String FACET_SALIX_SCENARIO = "uinfo_facet_salix_scenario";
49
50 private static final String FACET_SALIX_SCENARIO_DESCRIPTION = "uinfo_facet_salix_scenario.description";
42 51
43 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>(); 52 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
44 53
45 static { 54 static {
46 HANDLED_FACET_TYPES.add(FACET_SALIX_LINE); 55 HANDLED_FACET_TYPES.add(FACET_SALIX_LINE);
47 HANDLED_FACET_TYPES.add(FACET_SALIX_MNWMW); 56 HANDLED_FACET_TYPES.add(FACET_SALIX_MNWMW);
57 HANDLED_FACET_TYPES.add(FACET_SALIX_SCENARIO);
48 } 58 }
49 59
50 public static Facet createSalixLineFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, 60 public static Facet createSalixLineFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result,
51 final int facetIndex, final int resultIndex, final String description) { 61 final int facetIndex, final int resultIndex) {
52 62
63 final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_LINE_DESCRIPTION, FACET_SALIX_LINE_DESCRIPTION);
53 return new SalixLineResultFacet(FACET_SALIX_LINE, description); 64 return new SalixLineResultFacet(FACET_SALIX_LINE, description);
54 } 65 }
55 66
56 public static Facet createSalixMnwMwFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, 67 public static Facet createSalixMnwMwFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result,
57 final int facetIndex, final int resultIndex, final String description) { 68 final int facetIndex, final int resultIndex) {
58 69
70 final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_MNWMW_DESCRIPTION, FACET_SALIX_MNWMW_DESCRIPTION);
59 return new SalixMnwMwResultFacet(FACET_SALIX_MNWMW, description); 71 return new SalixMnwMwResultFacet(FACET_SALIX_MNWMW, description);
72 }
73
74 public static Facet createSalixScenarioFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result,
75 final int facetIndex, final int resultIndex, final String subLabel) {
76
77 final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_SCENARIO_DESCRIPTION, FACET_SALIX_SCENARIO_DESCRIPTION, subLabel);
78 return new SalixScenarioResultFacet(FACET_SALIX_SCENARIO, description, facetIndex, hash, id);
60 } 79 }
61 80
62 @Override 81 @Override
63 public final String getAxisLabel(final DiagramGenerator generator) { 82 public final String getAxisLabel(final DiagramGenerator generator) {
64 83
78 // log.debug("Processing facet: " + bundle.getFacetName()); 97 // log.debug("Processing facet: " + bundle.getFacetName());
79 final CallContext context = generator.getContext(); 98 final CallContext context = generator.getContext();
80 final Object data = bundle.getData(context); 99 final Object data = bundle.getData(context);
81 100
82 final XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); 101 final XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
102 final SalixLineCalculationNoScenarioResult result = (SalixLineCalculationNoScenarioResult) data;
83 103
84 if (bundle.getFacetName().equals(FACET_SALIX_LINE)) { 104 if (bundle.getFacetName().equals(FACET_SALIX_LINE)) {
85 StyledSeriesBuilder.addPoints(series, ((SalixLineCalculationNoScenarioResult) data).getStationPoints(UInfoResultType.salixline), true); 105 StyledSeriesBuilder.addPoints(series, result.getStationPoints(UInfoResultType.salixline), true);
86 generator.addAxisSeries(series, this.axisName, visible); 106 generator.addAxisSeries(series, this.axisName, visible);
87 return; 107 return;
88 } 108 }
89 109
90 if (bundle.getFacetName().equals(FACET_SALIX_MNWMW)) { 110 if (bundle.getFacetName().equals(FACET_SALIX_MNWMW)) {
91 StyledSeriesBuilder.addPoints(series, ((SalixLineCalculationNoScenarioResult) data).getStationPoints(UInfoResultType.salix_delta_mw), true); 111 StyledSeriesBuilder.addPoints(series, result.getStationPoints(UInfoResultType.salix_delta_mw), true);
112 generator.addAxisSeries(series, this.axisName, visible);
113 return;
114 }
115
116 if (bundle.getFacetName().equals(FACET_SALIX_SCENARIO)) {
117 // TODO Differenzieren, Scenario 1 bis max. 5 bei Regional
118 if (data instanceof SalixLineCalculationRegionalResult)
119 StyledSeriesBuilder.addPoints(series, ((SalixLineCalculationRegionalResult) data).getScenarioPoints(bundle.getFacet().getIndex()), true);
120 else
121 StyledSeriesBuilder.addPoints(series, result.getStationPoints(UInfoResultType.salix_line_scenario), false);
92 generator.addAxisSeries(series, this.axisName, visible); 122 generator.addAxisSeries(series, this.axisName, visible);
93 return; 123 return;
94 } 124 }
95 } 125 }
96 } 126 }

http://dive4elements.wald.intevation.org