# HG changeset patch # User Ingo Weinzierl # Date 1347606728 0 # Node ID 0c978a80726a61e030ca9c4d3f5f1da212cbdaf0 # Parent 066e2b4d69caca177aab82ab8359107f516aca9c Splitted up facets for porosity and density into two facets: a toplayer and a sublayer facet for each. BedQualityState will now create facets based on the calculation result. flys-artifacts/trunk@5464 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 066e2b4d69ca -r 0c978a80726a flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Thu Sep 13 20:58:24 2012 +0000 +++ b/flys-artifacts/ChangeLog Fri Sep 14 07:12:08 2012 +0000 @@ -1,3 +1,17 @@ +2012-09-14 Ingo Weinzierl + + * doc/conf/artifacts/minfo.xml: Splitted porosity and density facets into + two facets: a toplayer and a sublayer facet for each. + + * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added + the new facets for toplayer and sublayer for porosity and density. + + * src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java: + Create Facets based on the calculation results. + + * src/main/java/de/intevation/flys/exports/minfo/BedQualityGenerator.java: + Use concrete result types in doXXXOut(). + 2012-09-13 Christian Lins * doc/conf/artifacts/fixanalysis.xml, diff -r 066e2b4d69ca -r 0c978a80726a flys-artifacts/doc/conf/artifacts/minfo.xml --- a/flys-artifacts/doc/conf/artifacts/minfo.xml Thu Sep 13 20:58:24 2012 +0000 +++ b/flys-artifacts/doc/conf/artifacts/minfo.xml Fri Sep 14 07:12:08 2012 +0000 @@ -282,10 +282,12 @@ - + + + + - diff -r 066e2b4d69ca -r 0c978a80726a flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java Thu Sep 13 20:58:24 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java Fri Sep 14 07:12:08 2012 +0000 @@ -215,10 +215,12 @@ String MIDDLE_BED_HEIGHT_EPOCH = "bedheight_middle.epoch"; String MIDDLE_BED_HEIGHT_ANNOTATION = "bedheight_middle.annotation"; - String BED_QUALITY_POROSITY = "bed_longitudinal_section.porosity"; - String BED_QUALITY_BED_DIAMETER = "bed_longitudinal_section.bed_diameter"; - String BED_QUALITY_BEDLOAD_DIAMETER = "bed_longitudinal_section.bedload_diameter"; - String BED_QUALITY_SEDIMENT_DENSITY = "bed_longitudinal_section.sediment_density"; + String BED_QUALITY_POROSITY_TOPLAYER = "bed_longitudinal_section.porosity_toplayer"; + String BED_QUALITY_POROSITY_SUBLAYER = "bed_longitudinal_section.porosity_sublayer"; + String BED_QUALITY_BED_DIAMETER = "bed_longitudinal_section.bed_diameter"; + String BED_QUALITY_BEDLOAD_DIAMETER = "bed_longitudinal_section.bedload_diameter"; + String BED_QUALITY_SEDIMENT_DENSITY_TOPLAYER = "bed_longitudinal_section.sediment_density_toplayer"; + String BED_QUALITY_SEDIMENT_DENSITY_SUBLAYER = "bed_longitudinal_section.sediment_density_sublayer"; String SQ_OVERVIEW = "sq_overview"; diff -r 066e2b4d69ca -r 0c978a80726a flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java Thu Sep 13 20:58:24 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java Fri Sep 14 07:12:08 2012 +0000 @@ -11,10 +11,13 @@ import de.intevation.flys.artifacts.access.BedQualityAccess; import de.intevation.flys.artifacts.model.CalculationResult; import de.intevation.flys.artifacts.model.FacetTypes; +import de.intevation.flys.artifacts.model.minfo.BedBedQualityResult; import de.intevation.flys.artifacts.model.minfo.BedDensityFacet; import de.intevation.flys.artifacts.model.minfo.BedDiameterFacet; +import de.intevation.flys.artifacts.model.minfo.BedLoadBedQualityResult; import de.intevation.flys.artifacts.model.minfo.BedPorosityFacet; import de.intevation.flys.artifacts.model.minfo.BedQualityCalculation; +import de.intevation.flys.artifacts.model.minfo.BedQualityResult; import de.intevation.flys.artifacts.model.minfo.BedloadDiameterFacet; import de.intevation.flys.artifacts.states.DefaultState; @@ -42,25 +45,63 @@ return res; } - String stateId = getID(); - - // TODO CREATE FACETS DEPENDING ON THE CALCULATION RESULT - newFacets.add(new BedDiameterFacet(0, BED_QUALITY_BED_DIAMETER, - "bed diameter", ComputeType.ADVANCE, stateId, hash)); + BedQualityResult[] results = (BedQualityResult[]) res.getData(); - newFacets.add(new BedloadDiameterFacet(0, BED_QUALITY_BEDLOAD_DIAMETER, - "bedload diameter", ComputeType.ADVANCE, stateId, hash)); + if (results == null || results.length == 0) { + logger.warn("Calculation computed no results!"); + return res; + } - newFacets.add(new BedPorosityFacet(0, BED_QUALITY_POROSITY, "porosity", - ComputeType.ADVANCE, stateId, hash)); + generateFacets(newFacets, results, getID(), hash); + logger.debug("Created " + newFacets.size() + " new Facets."); - newFacets.add(new BedDensityFacet(0, BED_QUALITY_SEDIMENT_DENSITY, - "density", ComputeType.ADVANCE, stateId, hash)); - - logger.debug("Created " + newFacets.size() + " new Facets."); facets.addAll(newFacets); return res; } + + protected void generateFacets(List newFacets, + BedQualityResult[] results, String stateId, String hash) { + logger.debug("BedQualityState.generateFacets"); + + for (int idx = 0; idx < results.length; idx++) { + BedQualityResult result = results[idx]; + + if (result instanceof BedBedQualityResult) { + // TODO I18N for Facet description + newFacets.add(new BedPorosityFacet(idx, + BED_QUALITY_POROSITY_TOPLAYER, "porosity_toplayer", + ComputeType.ADVANCE, stateId, hash)); + + // TODO I18N for Facet description + newFacets.add(new BedPorosityFacet(idx, + BED_QUALITY_POROSITY_SUBLAYER, "porosity_sublayer", + ComputeType.ADVANCE, stateId, hash)); + + // TODO I18N for Facet description + newFacets.add(new BedDensityFacet(idx, + BED_QUALITY_SEDIMENT_DENSITY_TOPLAYER, "density_toplayer", + ComputeType.ADVANCE, stateId, hash)); + + // TODO I18N for Facet description + newFacets.add(new BedDensityFacet(idx, + BED_QUALITY_SEDIMENT_DENSITY_SUBLAYER, "density_sublayer", + ComputeType.ADVANCE, stateId, hash)); + + // TODO I18N for Facet description + newFacets.add(new BedloadDiameterFacet(idx, + BED_QUALITY_BEDLOAD_DIAMETER, "bed diameter", + ComputeType.ADVANCE, stateId, hash)); + } + else if (result instanceof BedLoadBedQualityResult) { + // TODO CREATE FACETS DEPENDING ON THE CALCULATION RESULT + newFacets.add(new BedDiameterFacet(idx, BED_QUALITY_BED_DIAMETER, + "bedload diameter", ComputeType.ADVANCE, stateId, hash)); + } + else { + logger.warn("unknown result object: " + result.getClass()); + } + } + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 066e2b4d69ca -r 0c978a80726a flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/BedQualityGenerator.java --- a/flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/BedQualityGenerator.java Thu Sep 13 20:58:24 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/BedQualityGenerator.java Fri Sep 14 07:12:08 2012 +0000 @@ -6,15 +6,11 @@ import de.intevation.artifactdatabase.state.ArtifactAndFacet; import de.intevation.artifactdatabase.state.Facet; -import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.model.FacetTypes; -import de.intevation.flys.artifacts.model.MiddleBedHeightData; -import de.intevation.flys.exports.ChartGenerator.YAxisWalker; -import de.intevation.flys.exports.StyledSeriesBuilder; +import de.intevation.flys.artifacts.model.minfo.BedBedQualityResult; +import de.intevation.flys.artifacts.model.minfo.BedLoadBedQualityResult; import de.intevation.flys.exports.XYChartGenerator; -import de.intevation.flys.jfree.FLYSAnnotation; import de.intevation.flys.jfree.StyledXYSeries; -import de.intevation.flys.utils.FLYSUtils; /** @@ -148,26 +144,25 @@ } if (name.equals(BED_QUALITY_BED_DIAMETER)) { - doBedDiameterOut(artifactAndFacet.getData(context), // TODO CAST TO - // SPECIFIC - // CLASS + doBedDiameterOut( + (BedBedQualityResult) artifactAndFacet.getData(context), artifactAndFacet, attr, visible); } else if (name.equals(BED_QUALITY_BEDLOAD_DIAMETER)) { - doBedloadDiameterOut(artifactAndFacet.getData(context), // TODO CAST - // TO - // SPECIFIC - // CLASS + doBedloadDiameterOut( + (BedLoadBedQualityResult) artifactAndFacet.getData(context), artifactAndFacet, attr, visible); } - else if (name.equals(BED_QUALITY_POROSITY)) { - doPorosityOut(artifactAndFacet.getData(context), // TODO CAST TO - // SPECIFIC CLASS + else if (name.equals(BED_QUALITY_POROSITY_TOPLAYER) + || name.equals(BED_QUALITY_POROSITY_SUBLAYER)) { + doPorosityOut( + (BedBedQualityResult) artifactAndFacet.getData(context), artifactAndFacet, attr, visible); } - else if (name.equals(BED_QUALITY_SEDIMENT_DENSITY)) { - doDensityOut(artifactAndFacet.getData(context), // TODO CAST TO - // SPECIFIC CLASS + else if (name.equals(BED_QUALITY_SEDIMENT_DENSITY_TOPLAYER) + || name.equals(BED_QUALITY_SEDIMENT_DENSITY_SUBLAYER)) { + doDensityOut( + (BedBedQualityResult) artifactAndFacet.getData(context), artifactAndFacet, attr, visible); } else if (FacetTypes.IS.MANUALPOINTS(name)) { @@ -180,8 +175,8 @@ } } - protected void doBedDiameterOut(Object data, ArtifactAndFacet aandf, - Document theme, boolean visible) { + protected void doBedDiameterOut(BedBedQualityResult data, + ArtifactAndFacet aandf, Document theme, boolean visible) { logger.debug("BedQuality.doBedDiameterOut"); XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); @@ -192,8 +187,8 @@ addAxisSeries(series, YAXIS.W.idx, visible); } - protected void doBedloadDiameterOut(Object data, ArtifactAndFacet aandf, - Document theme, boolean visible) { + protected void doBedloadDiameterOut(BedLoadBedQualityResult data, + ArtifactAndFacet aandf, Document theme, boolean visible) { logger.debug("BedQuality.doBedloadDiameterOut"); XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); @@ -204,8 +199,8 @@ addAxisSeries(series, YAXIS.W.idx, visible); } - protected void doPorosityOut(Object data, ArtifactAndFacet aandf, - Document theme, boolean visible) { + protected void doPorosityOut(BedBedQualityResult data, + ArtifactAndFacet aandf, Document theme, boolean visible) { logger.debug("BedQuality.doPorosityOut"); XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme); @@ -216,8 +211,8 @@ addAxisSeries(series, YAXIS.P.idx, visible); } - protected void doDensityOut(Object data, ArtifactAndFacet aandf, - Document theme, boolean visible) { + protected void doDensityOut(BedBedQualityResult data, + ArtifactAndFacet aandf, Document theme, boolean visible) { logger.debug("BedQuality.doDensityOut"); XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);