Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/exports/MiddleBedHeightGenerator.java @ 6332:f5bb53106ae8
Remove createBarriersLayer and createBarriers
The generated mapfiles did not work and were just confusing. This
looks like historical cruft that was never deleted. The real barrier
mapfiles are created in the Floodmap state
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Thu, 13 Jun 2013 17:24:56 +0200 |
parents | 128686fa5add |
children | 641fd5bd6965 |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.exports; import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; import org.dive4elements.artifactdatabase.state.Facet; import org.dive4elements.river.artifacts.D4EArtifact; import org.dive4elements.river.artifacts.model.FacetTypes; import org.dive4elements.river.artifacts.model.MiddleBedHeightData; import org.dive4elements.river.exports.process.BedheightProcessor; import org.dive4elements.river.exports.process.Processor; import org.dive4elements.river.exports.process.WOutProcessor; import org.dive4elements.river.jfree.RiverAnnotation; import org.dive4elements.river.jfree.StyledXYSeries; import org.dive4elements.river.utils.RiverUtils; import org.apache.log4j.Logger; import org.jfree.data.xy.XYSeries; import org.w3c.dom.Document; // TODO Move class to org.dive4elements.river.exports.minfo /** * An OutGenerator that generates middle bed height charts. * * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class MiddleBedHeightGenerator extends XYChartGenerator implements FacetTypes { public enum YAXIS { H(0), W(1), P(2); protected int idx; private YAXIS(int c) { idx = c; } } /** The logger that is used in this generator. */ private static Logger logger = Logger.getLogger(MiddleBedHeightGenerator.class); /** Key to look up internationalized String for annotations label. */ public static final String I18N_ANNOTATIONS_LABEL = "chart.bedheight_middle.annotations.label"; public static final String I18N_CHART_TITLE = "chart.bedheight_middle.section.title"; public static final String I18N_CHART_SUBTITLE = "chart.bedheight_middle.section.subtitle"; public static final String I18N_CHART_SHORT_SUBTITLE = "chart.bedheight_middle.section.shortsubtitle"; public static final String I18N_XAXIS_LABEL = "chart.bedheight_middle.section.xaxis.label"; public static final String I18N_YAXIS_LABEL = "chart.bedheight_middle.section.yaxis.label"; public static final String I18N_CHART_TITLE_DEFAULT = "Mittlere Sohlhöhe"; public static final String I18N_XAXIS_LABEL_DEFAULT = "km"; public static final String I18N_YAXIS_LABEL_DEFAULT = "mittlere Sohlhöhen [müNN]"; public static final String I18N_W_YAXIS_LABEL = "chart.longitudinal.section.yaxis.label"; public static final String I18N_W_YAXIS_LABEL_DEFAULT = "W [NN + m]"; public static final String I18N_P_YAXIS_LABEL_DEFAULT = "Gepeilte Breite [m]"; public static final String I18N_P_YAXIS_LABEL = "chart.bedheight_middle.sounding.yaxis.label"; @Override protected YAxisWalker getYAxisWalker() { return new YAxisWalker() { @Override public int length() { return YAXIS.values().length; } @Override public String getId(int idx) { YAXIS[] yaxes = YAXIS.values(); return yaxes[idx].toString(); } }; } /** * Returns the default title for this chart. * * @return the default title for this chart. */ @Override public String getDefaultChartTitle() { Object[] args = new Object[] { getRiverName() }; return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT, args); } /** * Get internationalized label for the x axis. */ @Override protected String getDefaultXAxisLabel() { D4EArtifact flys = (D4EArtifact) master; return msg( I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT, new Object[] { RiverUtils.getRiver(flys).getName() }); } @Override protected String getDefaultYAxisLabel(int index) { String label = "default"; if (index == YAXIS.H.idx) { label = getHAxisLabel(); } else if (index == YAXIS.W.idx) { D4EArtifact flys = (D4EArtifact) master; String unit = RiverUtils.getRiver(flys).getWstUnit().getName(); label = msg( I18N_W_YAXIS_LABEL, I18N_W_YAXIS_LABEL_DEFAULT, new Object[] { unit }); } else if (index == YAXIS.P.idx) { label = msg(I18N_P_YAXIS_LABEL, I18N_P_YAXIS_LABEL_DEFAULT); } return label; } /** * Get internationalized label for the y axis. */ protected String getHAxisLabel() { D4EArtifact flys = (D4EArtifact) master; String unit = RiverUtils.getRiver(flys).getWstUnit().getName(); return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT, new Object[] { unit }); } /** * Produce output. * @param artifactAndFacet current facet. * @param attr theme for facet */ @Override public void doOut( ArtifactAndFacet artifactAndFacet, Document attr, boolean visible ) { String name = artifactAndFacet.getFacetName(); logger.debug("MiddleBedHeightGenerator.doOut: " + name); if (name == null) { logger.error("No facet name for doOut(). No output generated!"); return; } Facet facet = artifactAndFacet.getFacet(); if (facet == null) { return; } Processor woutp = new WOutProcessor(); Processor bedp = new BedheightProcessor(); WOutProcessor processor = new WOutProcessor(); if (processor.canHandle(name)) { processor.doOut(this, artifactAndFacet, attr, visible, YAXIS.W.idx); } if (name.equals(MIDDLE_BED_HEIGHT_SINGLE) || name.equals(MIDDLE_BED_HEIGHT_EPOCH)) { doHeightOut( (MiddleBedHeightData) artifactAndFacet.getData(context), artifactAndFacet, attr, visible); } else if (name.equals(MIDDLE_BED_HEIGHT_ANNOTATION)) { doAnnotations( (RiverAnnotation) artifactAndFacet.getData(context), artifactAndFacet, attr, visible); } else if (FacetTypes.IS.AREA(name)) { doArea( artifactAndFacet.getData(context), artifactAndFacet, attr, visible); } else if (FacetTypes.IS.MANUALPOINTS(name)) { doPoints( artifactAndFacet.getData(context), artifactAndFacet, attr, visible, YAXIS.H.idx); } else if (bedp.canHandle(name)) { bedp.doOut(this, artifactAndFacet, attr, visible, YAXIS.P.idx); } else if (woutp.canHandle(name)) { woutp.doOut(this, artifactAndFacet, attr, visible, YAXIS.W.idx); } else { logger.warn("Unknown facet name: " + name); } } /** * @param data A data object * @param aandf The artifact and facet. This facet does NOT support any data objects. Use * D4EArtifact.getNativeFacet() instead to retrieve a Facet which supports * data. * @param theme The theme that contains styling information. * @param visible The visibility of the curve. */ protected void doHeightOut( MiddleBedHeightData data, ArtifactAndFacet aandf, Document theme, boolean visible ) { logger.debug("MiddleBedHeightGenerator.doMainChannelOut"); XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); StyledSeriesBuilder.addPoints(series, data.getMiddleHeightsPoints(), false, 0.110d); addAxisSeries(series, YAXIS.H.idx, visible); } /** Look up the axis identifier for a given facet type. */ public int axisIdxForFacet(String facetName) { if (FacetTypes.IS.H(facetName)) { return YAXIS.H.idx; } else if (FacetTypes.IS.W(facetName)) { return YAXIS.W.idx; } else { logger.warn("Could not find axis for facet " + facetName); return YAXIS.H.idx; } } /** * Do Area out. * @param theme styling information. * @param visible whether or not visible. */ protected void doArea( Object o, ArtifactAndFacet aandf, Document theme, boolean visible ) { logger.debug("FlowVelocityGenerator.doArea"); logger.warn("TODO: Implement FlowVelocityGenerator.doArea"); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :