Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationState.java @ 9190:0633f963c5be
uinfo.inundationduration workflow
author | gernotbelger |
---|---|
date | Thu, 28 Jun 2018 15:10:04 +0200 |
parents | 2f5052835b76 |
children | 787fc085459b |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationState.java Thu Jun 28 14:11:12 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationState.java Thu Jun 28 15:10:04 2018 +0200 @@ -16,14 +16,14 @@ import org.dive4elements.river.artifacts.ChartArtifact; import org.dive4elements.river.artifacts.D4EArtifact; import org.dive4elements.river.artifacts.MapArtifact.MapState; -import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult; import org.dive4elements.river.artifacts.model.Calculation; import org.dive4elements.river.artifacts.model.CalculationResult; import org.dive4elements.river.artifacts.model.DataFacet; import org.dive4elements.river.artifacts.model.EmptyFacet; -import org.dive4elements.river.artifacts.model.FacetTypes; import org.dive4elements.river.artifacts.model.ReportFacet; +import org.dive4elements.river.artifacts.model.map.WMSLayerFacet; import org.dive4elements.river.artifacts.uinfo.UINFOArtifact; +import org.dive4elements.river.artifacts.uinfo.inundationduration.InundationDurationCalculationResult.WmsLayer; /** * @author Domenico Nardi Tironi @@ -35,6 +35,8 @@ private static final long serialVersionUID = 1L; + private static final String LABEL_URL_SEPARATOR = ";";// always sync with client (ExportPanel) + /** * From this state can only be continued trivially. */ @@ -51,7 +53,7 @@ return null; } - return compute((UINFOArtifact) artifact, context, hash, facets, old); + return compute((UINFOArtifact) artifact, context, ComputeType.FEED, hash, facets, old); } @Override @@ -64,7 +66,8 @@ if (facets != null) super.computeAdvance(artifact, hash, context, facets, old); - return compute((UINFOArtifact) artifact, context, hash, facets, old); + return compute((UINFOArtifact) artifact, context, ComputeType.ADVANCE, hash, facets, old); + } /** @@ -73,27 +76,43 @@ * @param old * Object that was cached. */ - private Object compute(final UINFOArtifact sinfo, final CallContext context, final String hash, final List<Facet> facets, final Object old) { + private Object compute(final UINFOArtifact sinfo, final CallContext context, final ComputeType type, final String hash, final List<Facet> facets, + final Object old) { final CalculationResult res = doCompute(sinfo, context, old); if (facets == null) return res; - final InundationDurationCalculationResults results = (InundationDurationCalculationResults) res.getData(); - - final List<AbstractCalculationExportableResult<InundationDurationCalculationResults>> resultList = results.getResults(); + final InundationDurationCalculationResult result = (InundationDurationCalculationResult) res.getData(); + final List<WmsLayer> layers = result.getLayers(); - if (!resultList.isEmpty()) { - final Facet csv = new DataFacet(FacetTypes.CSV, "CSV data", ComputeType.ADVANCE, hash, this.id); - final Facet pdf = new DataFacet(FacetTypes.PDF, "PDF data", ComputeType.ADVANCE, hash, this.id); + int index = 1; // 1 because super.computeAdvance adds the river theme with index 0 + for (final WmsLayer layer : layers) { - facets.add(csv); - facets.add(pdf); + final String label = layer.getLabel(); + final String url = layer.getUrl(); + + final WMSLayerFacet wmsFacet = new WMSLayerFacet(index, FLOODMAP_EXTERNAL_WMS_INUNDATIONDUR + index, label, type, getID(), hash, url); + facets.add(wmsFacet); + + wmsFacet.addLayer("OSM-WMS-Dienst"); + + // wmsFacet.setExtent(getExtent(false)); + // wmsFacet.setOriginalExtent(getExtent(true)); + wmsFacet.setSrid(getSrid()); + + if (layer.isShowLayerLink()) + facets.add(new DataFacet("wms_url", label + LABEL_URL_SEPARATOR + url, ComputeType.ADVANCE, hash, this.id)); + + index++; // because super.computeAdvance adds the river theme with index 0 } + // tODO: create layer links: filter by "showLayerLink" + + // tODO: create layer links: filter by "showLayerLink" + final Calculation report = res.getReport(); - if (report.hasProblems()) facets.add(new ReportFacet(ComputeType.ADVANCE, hash, this.id));