Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/CollisionCalcProcessor.java @ 9205:3dae6b78e1da
inundationDuration/floodDuration multiple columns+chartLines refactoring
author | gernotbelger |
---|---|
date | Mon, 02 Jul 2018 19:01:09 +0200 |
parents | 4f411c6ee3ae |
children |
comparison
equal
deleted
inserted
replaced
9204:4f411c6ee3ae | 9205:3dae6b78e1da |
---|---|
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.resources.Resources; | 20 import org.dive4elements.river.artifacts.resources.Resources; |
21 import org.dive4elements.river.artifacts.sinfo.collision.CollisionCalcFacet; | |
22 import org.dive4elements.river.artifacts.sinfo.collision.CollisionCalcOverviewResult; | 21 import org.dive4elements.river.artifacts.sinfo.collision.CollisionCalcOverviewResult; |
23 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; | 22 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; |
24 import org.dive4elements.river.exports.DiagramGenerator; | 23 import org.dive4elements.river.exports.DiagramGenerator; |
25 import org.dive4elements.river.themes.ThemeDocument; | 24 import org.dive4elements.river.themes.ThemeDocument; |
26 | 25 |
35 public static final String FACET_COLLISION_CALC_COUNT = "sinfo_facet_collision_calc_count"; | 34 public static final String FACET_COLLISION_CALC_COUNT = "sinfo_facet_collision_calc_count"; |
36 | 35 |
37 public static final String FACET_COLLISION_CALC_COUNT_2 = "sinfo_facet_collision_calc_count.2"; | 36 public static final String FACET_COLLISION_CALC_COUNT_2 = "sinfo_facet_collision_calc_count.2"; |
38 | 37 |
39 public static final String FACET_COLLISION_CALC_COUNT_3 = "sinfo_facet_collision_calc_count.3"; | 38 public static final String FACET_COLLISION_CALC_COUNT_3 = "sinfo_facet_collision_calc_count.3"; |
39 | |
40 private static final String[] COLLISION_FACETS = new String[] { FACET_COLLISION_CALC_COUNT, FACET_COLLISION_CALC_COUNT_2, FACET_COLLISION_CALC_COUNT_3 }; | |
40 | 41 |
41 private static final String I18N_AXIS_LABEL = "chart.collision_count.section.yaxis.label"; | 42 private static final String I18N_AXIS_LABEL = "chart.collision_count.section.yaxis.label"; |
42 | 43 |
43 private static final String I18N_SERIES_NAME_PATTERN = "collision.count.title"; | 44 private static final String I18N_SERIES_NAME_PATTERN = "collision.count.title"; |
44 | 45 |
55 } | 56 } |
56 | 57 |
57 @Override | 58 @Override |
58 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { | 59 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { |
59 | 60 |
60 return buildSeriesForType1(generator, bundle, theme, visible, SInfoResultType.collisionCount, null); | 61 final int year = getDataIndex(bundle); |
62 | |
63 final CollisionCalcOverviewResult result = (CollisionCalcOverviewResult) getResult(generator, bundle); | |
64 | |
65 final double[][] points = result.getStationPointsByYear(SInfoResultType.collisionCount, year); | |
66 | |
67 return buildSeriesForType(points, generator, bundle, theme, visible, null); | |
61 } | 68 } |
62 | 69 |
63 public static final Facet createFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, | 70 public static final Facet createFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, |
64 final int index) { | 71 final int resultIndex, final int year, final int themeCount) { |
72 | |
73 // REMARK: we are using themeCount as facet index, because we get several lines (with the same facet name) for the same | |
74 // result index; however name and index are used on client side as unique id. | |
65 | 75 |
66 final CollisionCalcOverviewResult ccoResult = (CollisionCalcOverviewResult) result; | 76 final CollisionCalcOverviewResult ccoResult = (CollisionCalcOverviewResult) result; |
67 String facetDescription; | |
68 String facetName; | |
69 if (ccoResult.getSingleYears() == null) { | 77 if (ccoResult.getSingleYears() == null) { |
70 facetDescription = Resources.getMsg(context.getMeta(), I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN, result.getLabel()); | 78 final String facetDescription = Resources.getMsg(context.getMeta(), I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN, result.getLabel()); |
71 facetName = FACET_COLLISION_CALC_COUNT; | 79 return new SInfoResultFacet(themeCount, resultIndex, -1, FACET_COLLISION_CALC_COUNT, facetDescription, I18N_AXIS_LABEL, ComputeType.ADVANCE, id, |
80 hash); | |
81 } else { | |
82 final String facetDescription = Resources.getMsg(context.getMeta(), I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN, Integer.toString(year)); | |
83 return new SInfoResultFacet(themeCount, resultIndex, year, COLLISION_FACETS[themeCount % 3], facetDescription, I18N_AXIS_LABEL, ComputeType.ADVANCE, | |
84 id, hash); | |
72 } | 85 } |
73 else { | |
74 facetDescription = Resources.getMsg(context.getMeta(), I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN, | |
75 Integer.toString(ccoResult.getSingleYears()[index])); | |
76 facetName = new String[] { FACET_COLLISION_CALC_COUNT, FACET_COLLISION_CALC_COUNT_2, FACET_COLLISION_CALC_COUNT_3 }[index % 3].toString(); | |
77 } | |
78 return new CollisionCalcFacet(index, facetName, facetDescription, I18N_AXIS_LABEL, ComputeType.ADVANCE, id, hash); | |
79 } | 86 } |
80 } | 87 } |