Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java @ 9429:bd5f5d2220fa
Work on salix cross sections; waterlevels work now with different colors
Colors and i10n for all themes.
author | gernotbelger |
---|---|
date | Fri, 17 Aug 2018 17:48:01 +0200 |
parents | 6e7094368e97 |
children | d8e753d0fdb9 |
comparison
equal
deleted
inserted
replaced
9428:15f274e6d83b | 9429:bd5f5d2220fa |
---|---|
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.access.RangeAccess; | 20 import org.dive4elements.river.artifacts.access.RangeAccess; |
21 import org.dive4elements.river.artifacts.common.AbstractProcessor; | 21 import org.dive4elements.river.artifacts.common.AbstractProcessor; |
22 import org.dive4elements.river.artifacts.model.CrossSectionWaterLineFacet; | |
23 import org.dive4elements.river.artifacts.model.FacetTypes; | |
22 import org.dive4elements.river.artifacts.resources.Resources; | 24 import org.dive4elements.river.artifacts.resources.Resources; |
25 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; | |
23 import org.dive4elements.river.artifacts.uinfo.common.UInfoResultType; | 26 import org.dive4elements.river.artifacts.uinfo.common.UInfoResultType; |
27 import org.dive4elements.river.artifacts.uinfo.salix.SalixLineCrossSectionIndexData.SalixWaterlevel; | |
24 import org.dive4elements.river.exports.DiagramGenerator; | 28 import org.dive4elements.river.exports.DiagramGenerator; |
25 import org.dive4elements.river.themes.ThemeDocument; | 29 import org.dive4elements.river.themes.ThemeDocument; |
26 | 30 |
27 /** | 31 /** |
28 * Processor to generate the facets and data series of salix line | 32 * Processor to generate the facets and data series of salix line |
57 private static final String FACET_SALIX_SCENARIO_RAW_DESCRIPTION = "uinfo_facet_salix_scenario.raw.description"; | 61 private static final String FACET_SALIX_SCENARIO_RAW_DESCRIPTION = "uinfo_facet_salix_scenario.raw.description"; |
58 | 62 |
59 public static final String FACET_SALIX_RANK = "uinfo_facet_salix_rank"; | 63 public static final String FACET_SALIX_RANK = "uinfo_facet_salix_rank"; |
60 | 64 |
61 private static final String FACET_SALIX_RANK_DESCRIPTION = "uinfo_facet_salix_rank.description"; | 65 private static final String FACET_SALIX_RANK_DESCRIPTION = "uinfo_facet_salix_rank.description"; |
66 | |
67 // REMARK: must end with FacetTypes.CROSS_SECTION_WATER_LINE so its correctly recognized as such a theme | |
68 private static final String FACET_SALIX_CROSS_SECTION_WATER_LINE = "uinfo_facet_salix_line_" + FacetTypes.CROSS_SECTION_WATER_LINE; | |
69 | |
70 private static final String FACET_SALIX_CROSS_SECTION_WATER_LINE_DESCRIPTION = FACET_SALIX_CROSS_SECTION_WATER_LINE + "_description"; | |
71 | |
72 private static final String FACET_SALIX_SCENARIO_CROSS_SECTION_WATER_LINE = "uinfo_facet_salix_scenario_" + FacetTypes.CROSS_SECTION_WATER_LINE; | |
73 | |
74 private static final String FACET_SALIX_WATERLEVEL_CROSS_SECTION_WATER_LINE_PREFIX = "uinfo_facet_salix_waterlevel_"; | |
62 | 75 |
63 private static final String I18N_AXIS_LABEL = "uinfo.chart.salix_line.section.yaxis.label"; | 76 private static final String I18N_AXIS_LABEL = "uinfo.chart.salix_line.section.yaxis.label"; |
64 | 77 |
65 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>(); | 78 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>(); |
66 | 79 |
105 } | 118 } |
106 | 119 |
107 public static Facet createSalixScenarioFilteredFacet(final CallContext context, final String hash, final String id, final int dataIndex, | 120 public static Facet createSalixScenarioFilteredFacet(final CallContext context, final String hash, final String id, final int dataIndex, |
108 final int resultIndex, final int facetIndex, final String subLabel) { | 121 final int resultIndex, final int facetIndex, final String subLabel) { |
109 | 122 |
110 final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_SCENARIO_FILTERED_DESCRIPTION, | 123 final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_SCENARIO_FILTERED_DESCRIPTION, FACET_SALIX_SCENARIO_FILTERED_DESCRIPTION, |
111 FACET_SALIX_SCENARIO_FILTERED_DESCRIPTION, subLabel); | 124 subLabel); |
112 return new SalixScenarioResultFacet(facetIndex, resultIndex, dataIndex, FACET_SALIX_SCENARIO_FILTERED, description, I18N_AXIS_LABEL, hash, id); | 125 return new SalixScenarioResultFacet(facetIndex, resultIndex, dataIndex, FACET_SALIX_SCENARIO_FILTERED, description, I18N_AXIS_LABEL, hash, id); |
113 } | 126 } |
114 | 127 |
115 public static Facet createSalixScenarioRawFacet(final CallContext context, final String hash, final String id, final int dataIndex, final int resultIndex, | 128 public static Facet createSalixScenarioRawFacet(final CallContext context, final String hash, final String id, final int dataIndex, final int resultIndex, |
116 final int facetIndex, final String subLabel) { | 129 final int facetIndex, final String subLabel) { |
121 | 134 |
122 public static Facet createSalixRankFacet(final CallContext context, final String hash, final String id, final int facetIndex, final int resultIndex) { | 135 public static Facet createSalixRankFacet(final CallContext context, final String hash, final String id, final int facetIndex, final int resultIndex) { |
123 | 136 |
124 final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_RANK_DESCRIPTION, FACET_SALIX_RANK_DESCRIPTION); | 137 final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_RANK_DESCRIPTION, FACET_SALIX_RANK_DESCRIPTION); |
125 return new SalixRankResultFacet(facetIndex, resultIndex, FACET_SALIX_RANK, description, I18N_AXIS_LABEL, id, hash); | 138 return new SalixRankResultFacet(facetIndex, resultIndex, FACET_SALIX_RANK, description, I18N_AXIS_LABEL, id, hash); |
139 } | |
140 | |
141 public static Facet createSalixCrossSectionFacet(final CallContext context, final ComputeType type, final String hash, final String stateId, | |
142 final int facetIndex) { | |
143 final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_CROSS_SECTION_WATER_LINE_DESCRIPTION); | |
144 return new CrossSectionWaterLineFacet(facetIndex, FACET_SALIX_CROSS_SECTION_WATER_LINE, description, type, hash, stateId, | |
145 SalixLineCrossSectionIndexData.salixLine()); | |
146 } | |
147 | |
148 public static Facet createSalixScenarioCrossSectionFacet(final CallContext context, final ComputeType type, final String hash, final String stateId, | |
149 final int scenarioIndex, final int facetIndex, final String subLabel) { | |
150 | |
151 final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_SCENARIO_FILTERED_DESCRIPTION, FACET_SALIX_SCENARIO_FILTERED_DESCRIPTION, | |
152 subLabel); | |
153 | |
154 return new CrossSectionWaterLineFacet(facetIndex, FACET_SALIX_SCENARIO_CROSS_SECTION_WATER_LINE, description, type, hash, stateId, | |
155 SalixLineCrossSectionIndexData.scenario(scenarioIndex)); | |
156 } | |
157 | |
158 public static Facet createSalixWaterlevelCrossSectionFacet(final CallContext context, final ComputeType type, final String hash, final String stateId, | |
159 final SalixWaterlevel knownWaterlevel, final int facetIndex) { | |
160 final String facetName = FACET_SALIX_WATERLEVEL_CROSS_SECTION_WATER_LINE_PREFIX + knownWaterlevel.name() + "_" + FacetTypes.CROSS_SECTION_WATER_LINE; | |
161 final String facetI10n = facetName + "_description"; | |
162 final String facetDescirption = Resources.getMsg(context.getMeta(), facetI10n); | |
163 | |
164 return new CrossSectionWaterLineFacet(facetIndex, facetName, facetDescirption, type, hash, stateId, | |
165 SalixLineCrossSectionIndexData.waterlevel(knownWaterlevel)); | |
126 } | 166 } |
127 | 167 |
128 @Override | 168 @Override |
129 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { | 169 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { |
130 | 170 |
137 final double[][] scenarioPoints = data.getScenarioPoints(dataIndex); | 177 final double[][] scenarioPoints = data.getScenarioPoints(dataIndex); |
138 return buildSeriesForPoints(scenarioPoints, generator, bundle, theme, visible, GAP_DISTANCE); | 178 return buildSeriesForPoints(scenarioPoints, generator, bundle, theme, visible, GAP_DISTANCE); |
139 } | 179 } |
140 | 180 |
141 if (bundle.getFacetName().equals(FACET_SALIX_RANK)) { | 181 if (bundle.getFacetName().equals(FACET_SALIX_RANK)) { |
142 final CallContext context = generator.getContext(); | |
143 final RangeAccess kmRange = new RangeAccess((D4EArtifact) bundle.getArtifact()); | 182 final RangeAccess kmRange = new RangeAccess((D4EArtifact) bundle.getArtifact()); |
144 // TODO get all rank data (5 ranks) from database | 183 // TODO get all rank data (5 ranks) from database |
145 final double[][] points = new double[2][2]; | 184 final double[][] points = new double[2][2]; |
146 points[0][0] = kmRange.getLowerKm(); | 185 points[0][0] = kmRange.getLowerKm(); |
147 points[0][1] = kmRange.getUpperKm(); | 186 points[0][1] = kmRange.getUpperKm(); |