rrenkert@8182: package org.dive4elements.river.exports.process; rrenkert@8182: rrenkert@8182: import org.apache.log4j.Logger; rrenkert@8182: import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; rrenkert@8182: import org.dive4elements.artifacts.CallContext; rrenkert@8182: import org.dive4elements.river.artifacts.model.FacetTypes; rrenkert@8182: import org.dive4elements.river.artifacts.model.WQKms; rrenkert@8182: import org.dive4elements.river.exports.DiagramGenerator; rrenkert@8182: import org.dive4elements.river.exports.StyledSeriesBuilder; rrenkert@8182: import org.dive4elements.river.jfree.StyledXYSeries; rrenkert@8182: import org.dive4elements.river.themes.ThemeDocument; rrenkert@8182: import org.jfree.data.xy.XYSeries; rrenkert@8182: rrenkert@8182: rrenkert@8182: public class ComputedDischargeProcessor rrenkert@8182: extends DefaultProcessor rrenkert@8182: implements FacetTypes rrenkert@8182: { rrenkert@8182: private static Logger logger = rrenkert@8182: Logger.getLogger(ComputedDischargeProcessor.class); rrenkert@8182: rrenkert@8182: rrenkert@8182: @Override rrenkert@8182: public void doOut( rrenkert@8182: DiagramGenerator generator, rrenkert@8182: ArtifactAndFacet bundle, rrenkert@8182: ThemeDocument theme, rrenkert@8182: boolean visible rrenkert@8182: ) { rrenkert@8182: CallContext context = generator.getCallContext(); rrenkert@8182: Object data = bundle.getData(context); rrenkert@8182: if (data instanceof WQKms) { rrenkert@8182: doDischargeOut(generator, bundle, theme, visible); rrenkert@8182: } rrenkert@8182: } rrenkert@8182: rrenkert@8182: @Override rrenkert@8182: public String getAxisLabel(DiagramGenerator generator) { rrenkert@8182: return null; rrenkert@8182: } rrenkert@8182: rrenkert@8182: /** rrenkert@8182: * Returns true if the Processor class is able to generate output for a facet type rrenkert@8182: * rrenkert@8182: * @param facettype Name of the facet type rrenkert@8182: * @return true if the facettype can be processed rrenkert@8182: */ rrenkert@8182: @Override rrenkert@8182: public boolean canHandle(String facettype) { rrenkert@8182: return COMPUTED_DISCHARGE_Q.equals(facettype); rrenkert@8182: } rrenkert@8182: rrenkert@8182: private void doDischargeOut( rrenkert@8182: DiagramGenerator generator, rrenkert@8182: ArtifactAndFacet bundle, rrenkert@8182: ThemeDocument theme, rrenkert@8182: boolean visible rrenkert@8182: ) { rrenkert@8182: CallContext context = generator.getCallContext(); rrenkert@8182: XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); rrenkert@8182: Object data = bundle.getData(context); rrenkert@8182: WQKms wqkms = (WQKms) data; rrenkert@8182: double[][] wqData = new double[2][wqkms.size()]; rrenkert@8182: for (int i = 0; i < wqkms.size(); i++) { rrenkert@8182: wqData[0][i] = wqkms.getQ(i); rrenkert@8182: wqData[1][i] = wqkms.getW(i); rrenkert@8182: } rrenkert@8182: StyledSeriesBuilder.addPoints(series, wqData, false); rrenkert@8182: generator.addAxisSeries(series, axisName, visible); rrenkert@8182: rrenkert@8182: } rrenkert@8182: }