Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodHeightProcessor.java @ 9612:f8308db94634
#20 UI, Diagramme
author | dnt_bjoernsen <d.tironi@bjoernsen.de> |
---|---|
date | Wed, 09 Oct 2019 16:17:16 +0200 |
parents | 08f46ccd37ba |
children | 26e113e8224f |
comparison
equal
deleted
inserted
replaced
9611:8ed6c45136fa | 9612:f8308db94634 |
---|---|
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.common.AbstractCalculationResult; | 19 import org.dive4elements.river.artifacts.common.AbstractCalculationResult; |
20 import org.dive4elements.river.artifacts.common.AbstractProcessor; | 20 import org.dive4elements.river.artifacts.common.AbstractProcessor; |
21 import org.dive4elements.river.artifacts.common.ResultFacet; | |
22 import org.dive4elements.river.artifacts.resources.Resources; | 21 import org.dive4elements.river.artifacts.resources.Resources; |
23 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; | 22 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; |
23 import org.dive4elements.river.artifacts.sinfo.flood_duration.FloodDurationCalculationResult.Infrastructure; | |
24 import org.dive4elements.river.artifacts.sinfo.flood_duration.FloodDurationCalculationResult.ValueGetter; | 24 import org.dive4elements.river.artifacts.sinfo.flood_duration.FloodDurationCalculationResult.ValueGetter; |
25 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; | 25 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; |
26 import org.dive4elements.river.exports.DiagramGenerator; | 26 import org.dive4elements.river.exports.DiagramGenerator; |
27 import org.dive4elements.river.model.Attribute.AttributeKey; | 27 import org.dive4elements.river.model.Attribute.AttributeKey; |
28 import org.dive4elements.river.themes.ThemeDocument; | 28 import org.dive4elements.river.themes.ThemeDocument; |
37 | 37 |
38 private static final String FACET_FLOOD_HEIGHT_LEFT = "sinfo_facet_flood_height.left"; | 38 private static final String FACET_FLOOD_HEIGHT_LEFT = "sinfo_facet_flood_height.left"; |
39 | 39 |
40 private static final String FACET_FLOOD_HEIGHT_RIGHT = "sinfo_facet_flood_height.right"; | 40 private static final String FACET_FLOOD_HEIGHT_RIGHT = "sinfo_facet_flood_height.right"; |
41 | 41 |
42 private static final String FACET_FLOOD_HEIGHT_DESCRIPTION = "sinfo_facet_flood_height.description"; | 42 private static final String FACET_MAIN_VALUE_HEIGHT_DESCRIPTION = "mainvalue.w.description"; |
43 | 43 |
44 private static final String FACET_MAIN_VALUE_HEIGHT = "mainvalue.w"; | 44 private static final String FACET_MAIN_VALUE_HEIGHT = "mainvalue.w"; |
45 | |
46 private static final String FACET_MAIN_VALUE_HEIGHT_DESCRIPTION = "mainvalue.w.description"; | |
47 | 45 |
48 private static final String I18N_AXIS_LABEL = "sinfo.chart.flood_duration.height.section.yaxis.label"; | 46 private static final String I18N_AXIS_LABEL = "sinfo.chart.flood_duration.height.section.yaxis.label"; |
49 | 47 |
50 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>(); | 48 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>(); |
51 | 49 |
58 public FloodHeightProcessor() { | 56 public FloodHeightProcessor() { |
59 super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES); | 57 super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES); |
60 } | 58 } |
61 | 59 |
62 public static Facet createFloodHeightFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, | 60 public static Facet createFloodHeightFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, |
63 final int facetIndex, final int resultIndex) { | 61 final int facetIndex, final int resultIndex, final Infrastructure infrastructure) { |
64 | 62 |
65 if (facetIndex == 0) { | 63 final String facetName = infrastructure.getRiverside().equals(AttributeKey.LEFT) ? FACET_FLOOD_HEIGHT_LEFT : FACET_FLOOD_HEIGHT_RIGHT; |
66 final String description = Resources.getMsg(context.getMeta(), FACET_FLOOD_HEIGHT_DESCRIPTION, FACET_FLOOD_HEIGHT_DESCRIPTION, | 64 final String description = infrastructure.getFloodHeightLabel(context); |
67 SInfoResultType.localizeRiverside(context, AttributeKey.LEFT)); | 65 return new InfrastructureResultFacet(facetIndex, resultIndex, facetName, description, I18N_AXIS_LABEL, id, hash, infrastructure); |
68 return new ResultFacet(facetIndex, resultIndex, FACET_FLOOD_HEIGHT_LEFT, description, I18N_AXIS_LABEL, ComputeType.ADVANCE, id, hash); | |
69 } | |
70 else { | |
71 final String description = Resources.getMsg(context.getMeta(), FACET_FLOOD_HEIGHT_DESCRIPTION, FACET_FLOOD_HEIGHT_DESCRIPTION, | |
72 SInfoResultType.localizeRiverside(context, AttributeKey.RIGHT)); | |
73 return new ResultFacet(facetIndex, resultIndex, FACET_FLOOD_HEIGHT_RIGHT, description, I18N_AXIS_LABEL, ComputeType.ADVANCE, id, hash); | |
74 } | |
75 } | 66 } |
76 | 67 |
77 public static Facet createMainValueHeightFacet(final CallContext context, final String hash, final String id, final FloodDurationCalculationResult result, | 68 public static Facet createMainValueHeightFacet(final CallContext context, final String hash, final String id, final FloodDurationCalculationResult result, |
78 final int facetIndex, final int resultIndex, final int dataIndex) { | 69 final int facetIndex, final int resultIndex, final int dataIndex) { |
79 final String description = Resources.getMsg(context.getMeta(), FACET_MAIN_VALUE_HEIGHT_DESCRIPTION, FACET_MAIN_VALUE_HEIGHT_DESCRIPTION, | 70 final String description = Resources.getMsg(context.getMeta(), FACET_MAIN_VALUE_HEIGHT_DESCRIPTION, FACET_MAIN_VALUE_HEIGHT_DESCRIPTION, |
85 @Override | 76 @Override |
86 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { | 77 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { |
87 | 78 |
88 final String facetName = bundle.getFacetName(); | 79 final String facetName = bundle.getFacetName(); |
89 | 80 |
90 if (FACET_FLOOD_HEIGHT_LEFT.contentEquals(facetName)) { | 81 if (FACET_FLOOD_HEIGHT_LEFT.contentEquals(facetName) || FACET_FLOOD_HEIGHT_RIGHT.contentEquals(facetName)) |
91 return buildInfrastructureSeries(generator, bundle, theme, visible, AttributeKey.LEFT); | 82 return buildInfrastructureSeries(generator, bundle, theme, visible); |
92 } | |
93 | |
94 if (FACET_FLOOD_HEIGHT_RIGHT.contentEquals(facetName)) | |
95 return buildInfrastructureSeries(generator, bundle, theme, visible, AttributeKey.RIGHT); | |
96 | 83 |
97 if (FACET_MAIN_VALUE_HEIGHT.contentEquals(facetName)) { | 84 if (FACET_MAIN_VALUE_HEIGHT.contentEquals(facetName)) { |
98 | 85 |
99 final AbstractCalculationResult data = getResult(generator, bundle); | 86 final AbstractCalculationResult data = getResult(generator, bundle); |
100 | 87 |
115 | 102 |
116 final String error = String.format("Unknown facet name: %s", facetName); | 103 final String error = String.format("Unknown facet name: %s", facetName); |
117 throw new UnsupportedOperationException(error); | 104 throw new UnsupportedOperationException(error); |
118 } | 105 } |
119 | 106 |
120 private String buildInfrastructureSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible, | 107 private String buildInfrastructureSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, |
121 final AttributeKey riverside) { | 108 final boolean visible) { |
109 | |
110 final InfrastructureResultFacet infFacet = (InfrastructureResultFacet) bundle.getFacet(); | |
111 final Infrastructure infrastructure = infFacet.getInfrastructure(); | |
122 | 112 |
123 final FloodDurationCalculationResult data = (FloodDurationCalculationResult) getResult(generator, bundle); | 113 final FloodDurationCalculationResult data = (FloodDurationCalculationResult) getResult(generator, bundle); |
124 | 114 |
125 final double[][] points = data.getInfrastructurePoints(SInfoResultType.infrastructureHeight, riverside); | 115 final double[][] points = data.getInfrastructurePoints(SInfoResultType.infrastructureHeight, infrastructure); |
126 | 116 |
127 return buildSeriesForPoints(points, generator, bundle, theme, visible, null); | 117 return buildSeriesForPoints(points, generator, bundle, theme, visible, null); |
128 } | 118 } |
129 } | 119 } |