comparison artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffHeightYearProcessor.java @ 7985:10debf4b82be facet-metadata

Split bed differences facet into data specific facets.
author Raimund Renkert <rrenkert@intevation.de>
date Tue, 01 Jul 2014 15:09:56 +0200
parents e844be34a606
children b5cba2690347
comparison
equal deleted inserted replaced
7984:cf674b03901a 7985:10debf4b82be
47 @Override 47 @Override
48 public void doOut( 48 public void doOut(
49 DiagramGenerator generator, 49 DiagramGenerator generator,
50 ArtifactAndFacet bundle, 50 ArtifactAndFacet bundle,
51 ThemeDocument theme, 51 ThemeDocument theme,
52 boolean visible) { 52 boolean visible
53 ) {
53 CallContext context = generator.getCallContext(); 54 CallContext context = generator.getCallContext();
54 Object data = bundle.getData(context); 55 Object data = bundle.getData(context);
55 Map<String, String> metaData = bundle.getFacet().getMetaData( 56 Map<String, String> metaData = bundle.getFacet().getMetaData(
56 bundle.getArtifact(), context); 57 bundle.getArtifact(), context);
57 58
58 if (!(data instanceof BedDiffYearResult)) { 59 if (!(data instanceof double[][])) {
59 // Should not happen if canHandle is correct 60 // Should not happen if canHandle is correct
60 logger.error("Can't process " + data.getClass().getName() + " objects"); 61 logger.error("Can't process " + data.getClass().getName() + " objects");
61 return; 62 return;
62 } 63 }
64
65 setSubtitleRadius(generator, bundle, context);
66
67 double[][] bData = (double[][]) data;
68
69 StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
70 series.putMetaData(metaData, bundle.getArtifact(), context);
71
72 StyledSeriesBuilder.addPoints(series, bData, false, GAP_TOLERANCE);
73
74 generator.addAxisSeries(series, axisName, visible);
75 }
76
77 private void setSubtitleRadius(
78 DiagramGenerator generator,
79 ArtifactAndFacet bundle,
80 CallContext context
81 ) {
63 Double start = (Double)context.getContextValue("startkm"); 82 Double start = (Double)context.getContextValue("startkm");
64 Double end = (Double)context.getContextValue("endkm"); 83 Double end = (Double)context.getContextValue("endkm");
65 if (start != null && end != null) { 84 if (start != null && end != null) {
66 D4EArtifact artifact = (D4EArtifact)bundle.getArtifact(); 85 D4EArtifact artifact = (D4EArtifact)bundle.getArtifact();
67 RiverContext fc = (RiverContext)context.globalContext(); 86 RiverContext fc = (RiverContext)context.globalContext();
74 generator.addSubtitle(Resources.getMsg( 93 generator.addSubtitle(Resources.getMsg(
75 context.getMeta(), 94 context.getMeta(),
76 I18N_SUBTITLE_RADIUS, 95 I18N_SUBTITLE_RADIUS,
77 new Object[] { radius })); 96 new Object[] { radius }));
78 } 97 }
79 BedDiffYearResult bData = (BedDiffYearResult) data;
80 StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
81 series.putMetaData(metaData, bundle.getArtifact(), context);
82 StyledSeriesBuilder.addPoints(series, bData.getHeightPerYearData(), false, GAP_TOLERANCE);
83
84 generator.addAxisSeries(series, axisName, visible);
85 } 98 }
86 99
87 @Override 100 @Override
88 public void doOut( 101 public void doOut(
89 XYChartGenerator generator, 102 XYChartGenerator generator,
93 int index 106 int index
94 ) { 107 ) {
95 CallContext context = generator.getCallContext(); 108 CallContext context = generator.getCallContext();
96 Object data = bundle.getData(context); 109 Object data = bundle.getData(context);
97 110
98 if (!(data instanceof BedDiffYearResult)) { 111 if (!(data instanceof double[][])) {
99 // Should not happen if canHandle is correct 112 // Should not happen if canHandle is correct
100 logger.error("Can't process " + data.getClass().getName() + " objects"); 113 logger.error("Can't process " + data.getClass().getName() + " objects");
101 return; 114 return;
102 } 115 }
103 116
104 BedDiffYearResult bData = (BedDiffYearResult) data; 117 double[][] bData = (double[][]) data;
105 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); 118 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
106 StyledSeriesBuilder.addPoints(series, bData.getHeightPerYearData(), false, GAP_TOLERANCE); 119 StyledSeriesBuilder.addPoints(series, bData, false, GAP_TOLERANCE);
107 120
108 generator.addAxisSeries(series, index, visible); 121 generator.addAxisSeries(series, index, visible);
109 } 122 }
110 123
111 @Override 124 @Override

http://dive4elements.wald.intevation.org