comparison artifacts/src/main/java/org/dive4elements/river/exports/process/BedHeightProcessor.java @ 7984:cf674b03901a facet-metadata

Bedheight facet now returns double[][]. Removed obsolete processor code.
author Raimund Renkert <rrenkert@intevation.de>
date Tue, 01 Jul 2014 13:27:53 +0200
parents e844be34a606
children 5277483044d9
comparison
equal deleted inserted replaced
7983:62befca02480 7984:cf674b03901a
47 DiagramGenerator generator, 47 DiagramGenerator generator,
48 ArtifactAndFacet bundle, 48 ArtifactAndFacet bundle,
49 ThemeDocument theme, 49 ThemeDocument theme,
50 boolean visible) { 50 boolean visible) {
51 XYSeries series = prepareSeries(bundle, theme, generator.getCallContext()); 51 XYSeries series = prepareSeries(bundle, theme, generator.getCallContext());
52 generator.addAxisSeries(series, axisName, visible); 52 if (series != null) {
53 generator.addAxisSeries(series, axisName, visible);
54 }
53 } 55 }
54 56
55 @Override 57 @Override
56 public void doOut( 58 public void doOut(
57 XYChartGenerator generator, 59 XYChartGenerator generator,
59 ThemeDocument theme, 61 ThemeDocument theme,
60 boolean visible, 62 boolean visible,
61 int index 63 int index
62 ) { 64 ) {
63 XYSeries series = prepareSeries(bundle, theme, generator.getCallContext()); 65 XYSeries series = prepareSeries(bundle, theme, generator.getCallContext());
64 generator.addAxisSeries(series, index, visible); 66 if (series != null) {
67 generator.addAxisSeries(series, index, visible);
68 }
65 } 69 }
66 70
67 /** Prepare an series, independent of axis. */ 71 /** Prepare an series, independent of axis. */
68 private XYSeries prepareSeries(ArtifactAndFacet bundle, 72 private XYSeries prepareSeries(
69 ThemeDocument theme, CallContext context) { 73 ArtifactAndFacet bundle,
70 Object data = bundle.getData(context); 74 ThemeDocument theme,
75 CallContext context
76 ) {
71 Map<String, String> metaData = bundle.getFacet().getMetaData( 77 Map<String, String> metaData = bundle.getFacet().getMetaData(
72 bundle.getArtifact(), context); 78 bundle.getArtifact(), context);
73 StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(), 79 StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
74 theme); 80 theme);
75 series.putMetaData(metaData, bundle.getArtifact(), context); 81 series.putMetaData(metaData, bundle.getArtifact(), context);
76 yAxisLabel = metaData.get("Y"); 82 yAxisLabel = metaData.get("Y");
77 if (data instanceof BedDiffYearResult) {
78 BedDiffYearResult bData = (BedDiffYearResult) data;
79 83
80 double[][] points; 84 Object raw = bundle.getData(context);
81 String facetType = bundle.getFacetName(); 85 if (!(raw instanceof double[][])) {
86 logger.error("Unkown datatype: " + raw.getClass().getName());
87 return null;
88 }
82 89
83 if (FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1.equals(facetType) || 90 double[][] data = (double[][])raw;
84 FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1_FILTERED.equals(facetType)) { 91 StyledSeriesBuilder.addPointsFactorY(series,
85 points = bData.getHeights1Data(); 92 data,
86 } else { 93 false,
87 points = bData.getHeights2Data(); 94 GAP_TOLERANCE,
88 } 95 1d);
89 StyledSeriesBuilder.addPointsFactorY(series,
90 points,
91 false,
92 GAP_TOLERANCE,
93 1d);
94 } else if (data instanceof BedHeightSingleData) {
95 BedHeightSingleData bData = (BedHeightSingleData)data;
96 double[][] points = new double[][]
97 {bData.getStations().toNativeArray(), bData.getHeights()};
98
99 logger.debug("doBedheightSingleOut");
100 StyledSeriesBuilder.addPointsFactorY(series,
101 points,
102 false,
103 GAP_TOLERANCE,
104 1d);
105 }
106 else if (data instanceof List<?>) {
107 List<BedHeightSingleValue> bData = (List<BedHeightSingleValue>)data;
108 double[][] points = new double[2][];
109
110 logger.debug("doBedheightSingleValueOut");
111
112 for(int i = 0; i < bData.size(); i++) {
113 BedHeightSingleValue bvalue = bData.get(i);
114 points[0][i] = bvalue.getStation();
115 points[1][i] = bvalue.getHeight();
116 }
117 StyledSeriesBuilder.addPointsFactorY(series,
118 points,
119 false,
120 GAP_TOLERANCE,
121 1d);
122 }
123 else {
124 logger.error("Unknown data type " + data.getClass());
125 }
126 return series; 96 return series;
127 } 97 }
128 98
129 99
130 @Override 100 @Override

http://dive4elements.wald.intevation.org