comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/CollisionCalcProcessor.java @ 9204:4f411c6ee3ae

Individual facets/themes for single years i the S-Info collisions output
author mschaefer
date Mon, 02 Jul 2018 17:40:39 +0200
parents 6393e05a9610
children 3dae6b78e1da
comparison
equal deleted inserted replaced
9203:9831f6c60473 9204:4f411c6ee3ae
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; 21 import org.dive4elements.river.artifacts.sinfo.collision.CollisionCalcFacet;
22 import org.dive4elements.river.artifacts.sinfo.collision.CollisionCalcOverviewResult;
22 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; 23 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
23 import org.dive4elements.river.exports.DiagramGenerator; 24 import org.dive4elements.river.exports.DiagramGenerator;
24 import org.dive4elements.river.themes.ThemeDocument; 25 import org.dive4elements.river.themes.ThemeDocument;
25 26
26 /** 27 /**
31 */ 32 */
32 public final class CollisionCalcProcessor extends AbstractSInfoProcessor { 33 public final class CollisionCalcProcessor extends AbstractSInfoProcessor {
33 34
34 public static final String FACET_COLLISION_CALC_COUNT = "sinfo_facet_collision_calc_count"; 35 public static final String FACET_COLLISION_CALC_COUNT = "sinfo_facet_collision_calc_count";
35 36
37 public static final String FACET_COLLISION_CALC_COUNT_2 = "sinfo_facet_collision_calc_count.2";
38
39 public static final String FACET_COLLISION_CALC_COUNT_3 = "sinfo_facet_collision_calc_count.3";
40
36 private static final String I18N_AXIS_LABEL = "chart.collision_count.section.yaxis.label"; 41 private static final String I18N_AXIS_LABEL = "chart.collision_count.section.yaxis.label";
37 42
38 private static final String I18N_SERIES_NAME_PATTERN = "collision.count.title"; 43 private static final String I18N_SERIES_NAME_PATTERN = "collision.count.title";
39 44
40 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>(); 45 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
41 46
42 static { 47 static {
43 HANDLED_FACET_TYPES.add(FACET_COLLISION_CALC_COUNT); 48 HANDLED_FACET_TYPES.add(FACET_COLLISION_CALC_COUNT);
49 HANDLED_FACET_TYPES.add(FACET_COLLISION_CALC_COUNT_2);
50 HANDLED_FACET_TYPES.add(FACET_COLLISION_CALC_COUNT_3);
44 } 51 }
45 52
46 public CollisionCalcProcessor() { 53 public CollisionCalcProcessor() {
47 super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES); 54 super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES);
48 } 55 }
49 56
50 @Override 57 @Override
51 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { 58 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) {
52 59
53 return buildSeriesForType(generator, bundle, theme, visible, SInfoResultType.collisionCount, null); 60 return buildSeriesForType1(generator, bundle, theme, visible, SInfoResultType.collisionCount, null);
54 } 61 }
55 62
56 public static final Facet createFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, 63 public static final Facet createFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result,
57 final int index) { 64 final int index) {
58 final String facetDescription = Resources.getMsg(context.getMeta(), I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN, result.getLabel()); 65
59 return new CollisionCalcFacet(index, FACET_COLLISION_CALC_COUNT, facetDescription, I18N_AXIS_LABEL, ComputeType.ADVANCE, id, hash); 66 final CollisionCalcOverviewResult ccoResult = (CollisionCalcOverviewResult) result;
67 String facetDescription;
68 String facetName;
69 if (ccoResult.getSingleYears() == null) {
70 facetDescription = Resources.getMsg(context.getMeta(), I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN, result.getLabel());
71 facetName = FACET_COLLISION_CALC_COUNT;
72 }
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);
60 } 79 }
61 } 80 }

http://dive4elements.wald.intevation.org