Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationProcessor.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; |
36 public final class FloodDurationProcessor extends AbstractProcessor { | 36 public final class FloodDurationProcessor extends AbstractProcessor { |
37 | 37 |
38 private static final String FACET_FLOOD_DURATION_LEFT = "sinfo_facet_flood_duration.left"; | 38 private static final String FACET_FLOOD_DURATION_LEFT = "sinfo_facet_flood_duration.left"; |
39 | 39 |
40 private static final String FACET_FLOOD_DURATION_RIGHT = "sinfo_facet_flood_duration.right"; | 40 private static final String FACET_FLOOD_DURATION_RIGHT = "sinfo_facet_flood_duration.right"; |
41 | |
42 private static final String FACET_FLOOD_DURATION_DESCRIPTION = "sinfo_facet_flood_duration.description"; | |
43 | 41 |
44 private static final String FACET_MAIN_VALUE_DURATION = "mainvalue.duration"; | 42 private static final String FACET_MAIN_VALUE_DURATION = "mainvalue.duration"; |
45 | 43 |
46 private static final String FACET_MAIN_VALUE_DURATION_DESCRIPTION = "mainvalue.duration.description"; | 44 private static final String FACET_MAIN_VALUE_DURATION_DESCRIPTION = "mainvalue.duration.description"; |
47 | 45 |
58 public FloodDurationProcessor() { | 56 public FloodDurationProcessor() { |
59 super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES); | 57 super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES); |
60 } | 58 } |
61 | 59 |
62 public static Facet createFloodDurationFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, | 60 public static Facet createFloodDurationFacet(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 description = infrastructure.getFloodDurationLabel(context); |
66 final String description = Resources.getMsg(context.getMeta(), FACET_FLOOD_DURATION_DESCRIPTION, FACET_FLOOD_DURATION_DESCRIPTION, | 64 final String facetName = infrastructure.getRiverside() == AttributeKey.LEFT ? FACET_FLOOD_DURATION_LEFT : FACET_FLOOD_DURATION_RIGHT; |
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_DURATION_LEFT, description, I18N_AXIS_LABEL, ComputeType.ADVANCE, id, hash); | |
69 } | |
70 else { | |
71 final String description = Resources.getMsg(context.getMeta(), FACET_FLOOD_DURATION_DESCRIPTION, FACET_FLOOD_DURATION_DESCRIPTION, | |
72 SInfoResultType.localizeRiverside(context, AttributeKey.RIGHT)); | |
73 return new ResultFacet(facetIndex, resultIndex, FACET_FLOOD_DURATION_RIGHT, description, I18N_AXIS_LABEL, ComputeType.ADVANCE, id, hash); | |
74 } | |
75 } | 66 } |
76 | 67 |
77 public static Facet createMainValueDurationFacet(final CallContext context, final String hash, final String id, final FloodDurationCalculationResult result, | 68 public static Facet createMainValueDurationFacet(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 | 70 |
87 @Override | 78 @Override |
88 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { | 79 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { |
89 | 80 |
90 final String facetName = bundle.getFacetName(); | 81 final String facetName = bundle.getFacetName(); |
91 | 82 |
92 if (FACET_FLOOD_DURATION_LEFT.contentEquals(facetName)) { | 83 if (FACET_FLOOD_DURATION_LEFT.contentEquals(facetName) || FACET_FLOOD_DURATION_RIGHT.contentEquals(facetName)) |
93 return buildInfrastructureSeries(generator, bundle, theme, visible, AttributeKey.LEFT); | 84 return buildInfrastructureSeries(generator, bundle, theme, visible); |
94 } | |
95 | |
96 if (FACET_FLOOD_DURATION_RIGHT.contentEquals(facetName)) | |
97 return buildInfrastructureSeries(generator, bundle, theme, visible, AttributeKey.RIGHT); | |
98 | 85 |
99 if (FACET_MAIN_VALUE_DURATION.contentEquals(facetName)) { | 86 if (FACET_MAIN_VALUE_DURATION.contentEquals(facetName)) { |
100 | 87 |
101 final AbstractCalculationResult data = getResult(generator, bundle); | 88 final AbstractCalculationResult data = getResult(generator, bundle); |
102 | 89 |
117 | 104 |
118 final String error = String.format("Unknown facet name: %s", facetName); | 105 final String error = String.format("Unknown facet name: %s", facetName); |
119 throw new UnsupportedOperationException(error); | 106 throw new UnsupportedOperationException(error); |
120 } | 107 } |
121 | 108 |
122 private String buildInfrastructureSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible, | 109 private String buildInfrastructureSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, |
123 final AttributeKey riverside) { | 110 final boolean visible) { |
111 | |
112 final InfrastructureResultFacet infFacet = (InfrastructureResultFacet) bundle.getFacet(); | |
113 final Infrastructure infrastructure = infFacet.getInfrastructure(); | |
124 | 114 |
125 final FloodDurationCalculationResult data = (FloodDurationCalculationResult) getResult(generator, bundle); | 115 final FloodDurationCalculationResult data = (FloodDurationCalculationResult) getResult(generator, bundle); |
126 | 116 |
127 final double[][] points = data.getInfrastructurePoints(SInfoResultType.floodDuration, riverside); | 117 final double[][] points = data.getInfrastructurePoints(SInfoResultType.floodDuration, infrastructure); |
128 | 118 |
129 return buildSeriesForPoints(points, generator, bundle, theme, visible, null); | 119 return buildSeriesForPoints(points, generator, bundle, theme, visible, null); |
130 } | 120 } |
131 } | 121 } |