# HG changeset patch # User Raimund Renkert # Date 1326897376 0 # Node ID e8fc770d2f8cf51093a740eb2c888b10a0353334 # Parent e50a928187cdc14a004e9801a379fdef7370a194 'New Chart' for computed discharge curve. flys-artifacts/trunk@3707 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r e50a928187cd -r e8fc770d2f8c flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Wed Jan 18 13:39:16 2012 +0000 +++ b/flys-artifacts/ChangeLog Wed Jan 18 14:36:16 2012 +0000 @@ -1,3 +1,27 @@ +2012-01-18 Raimund Renkert + + 'New Chart' for computed discharge curve. + + * doc/conf/artifacts/chart.xml: Fixed transitions and added state for km input. + + * src/main/java/de/intevation/flys/artifacts/model/EmptyFacet.java: + New. Added an empty facet to avoid deleting an empty output. + + * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java, + src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java, + src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java: + Changed some return values if the artifact is a ChartArtifact. + + * src/main/java/de/intevation/flys/exports/ChartGenerator.java, + src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java: + Changed casts from WINFOArtifact to FLYSArtifact. + + * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java: + Add an empty facet if the artifact is a ChartArtifact. + + * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: + Set a default axis range if the range is null. + 2012-01-18 Felix Wolfsteller Added stub hyk infrastructure. diff -r e50a928187cd -r e8fc770d2f8c flys-artifacts/doc/conf/artifacts/chart.xml --- a/flys-artifacts/doc/conf/artifacts/chart.xml Wed Jan 18 13:39:16 2012 +0000 +++ b/flys-artifacts/doc/conf/artifacts/chart.xml Wed Jan 18 14:36:16 2012 +0000 @@ -14,36 +14,40 @@ - + - - - - - - - + - + - - + + - + + + + + + + - + - + - + + + + + @@ -73,22 +77,6 @@ - - - - - - - - - - - - - - - - @@ -122,5 +110,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff -r e50a928187cd -r e8fc770d2f8c flys-artifacts/src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java Wed Jan 18 13:39:16 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java Wed Jan 18 14:36:16 2012 +0000 @@ -23,7 +23,7 @@ import de.intevation.artifactdatabase.state.Output; import de.intevation.flys.artifacts.datacage.Recommendations; - +import de.intevation.flys.artifacts.ChartArtifact; public class CollectionMonitor implements Hook { @@ -73,6 +73,10 @@ FLYSArtifact flys, CallContext context) { + if (flys instanceof ChartArtifact) { + return new String[0]; + } + List outs = flys.getCurrentOutputs(context); int num = outs == null ? 0 : outs.size(); diff -r e50a928187cd -r e8fc770d2f8c flys-artifacts/src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java Wed Jan 18 13:39:16 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java Wed Jan 18 14:36:16 2012 +0000 @@ -161,7 +161,7 @@ CallMeta meta) { logger.debug("WQKmsInterpolArtifact.initialize"); - WINFOArtifact winfo = (WINFOArtifact) artifact; + FLYSArtifact winfo = (FLYSArtifact) artifact; importData(winfo, "river"); importData(winfo, "ld_locations"); } diff -r e50a928187cd -r e8fc770d2f8c flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/EmptyFacet.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/EmptyFacet.java Wed Jan 18 14:36:16 2012 +0000 @@ -0,0 +1,33 @@ +package de.intevation.flys.artifacts.model; + +import de.intevation.artifacts.Artifact; +import de.intevation.artifacts.CallContext; + +import de.intevation.artifactdatabase.state.DefaultFacet; +import de.intevation.artifactdatabase.state.Facet; + +public class EmptyFacet +extends DefaultFacet +{ + /** Trivial constructor. */ + public EmptyFacet() { + super(0, "empty.facet", "empty.facet"); + } + + @Override + public Object getData(Artifact artifact, CallContext context) { + return null; + } + + + /** + * Return a deep copy. + */ + @Override + public Facet deepCopy() { + EmptyFacet copy = new EmptyFacet(); + copy.set(this); + return copy; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : diff -r e50a928187cd -r e8fc770d2f8c flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java Wed Jan 18 13:39:16 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java Wed Jan 18 14:36:16 2012 +0000 @@ -23,6 +23,8 @@ import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.WINFOArtifact; +import de.intevation.flys.artifacts.ChartArtifact; + import de.intevation.flys.artifacts.model.CalculationResult; import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.GaugesFactory; @@ -158,6 +160,9 @@ ) { logger.debug("computeFeed"); + if (artifact instanceof ChartArtifact) { + return null; + } WINFOArtifact winfo = (WINFOArtifact)artifact; CalculationResult res = old instanceof CalculationResult diff -r e50a928187cd -r e8fc770d2f8c flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java Wed Jan 18 13:39:16 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java Wed Jan 18 14:36:16 2012 +0000 @@ -10,11 +10,13 @@ import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.WINFOArtifact; +import de.intevation.flys.artifacts.ChartArtifact; import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.WaterlevelFacet; import de.intevation.flys.artifacts.model.DataFacet; import de.intevation.flys.artifacts.model.ReportFacet; +import de.intevation.flys.artifacts.model.EmptyFacet; import de.intevation.flys.artifacts.model.WQKms; import de.intevation.flys.artifacts.model.CalculationResult; @@ -48,40 +50,49 @@ List facets, Object old ) { - WINFOArtifact winfo = (WINFOArtifact)artifact; - - CalculationResult res = old instanceof CalculationResult - ? (CalculationResult)old - : winfo.getComputedDischargeCurveData(); - - WQKms [] wqkms = (WQKms [])res.getData(); - - if (facets != null && wqkms.length > 0) { - for (int i = 0; i < wqkms.length; ++i) { + logger.debug("ComputedDischargeCurveState.computeAdvance"); + if(artifact instanceof WINFOArtifact) { + WINFOArtifact winfo = (WINFOArtifact)artifact; - Object[] args = new Object[] { - FLYSUtils.getRiver(winfo).getName(), - wqkms[i].getName() - }; + CalculationResult res = old instanceof CalculationResult + ? (CalculationResult)old + : winfo.getComputedDischargeCurveData(); - String name = Resources.getMsg( - context.getMeta(), - "chart.computed.discharge.curve.curve.label", - "", - args); + WQKms [] wqkms = (WQKms [])res.getData(); - facets.add(new WaterlevelFacet(i, COMPUTED_DISCHARGE_Q, name)); - facets.add(new WaterlevelFacet(i, AT, "AT data")); + if (facets != null && wqkms.length > 0) { + for (int i = 0; i < wqkms.length; ++i) { + + Object[] args = new Object[] { + FLYSUtils.getRiver(winfo).getName(), + wqkms[i].getName() + }; + + String name = Resources.getMsg( + context.getMeta(), + "chart.computed.discharge.curve.curve.label", + "", + args); + + facets.add(new WaterlevelFacet(i, COMPUTED_DISCHARGE_Q, name)); + facets.add(new WaterlevelFacet(i, AT, "AT data")); + } + + facets.add(new DataFacet(CSV, "CSV data")); + + if (res.getReport().hasProblems()) { + facets.add(new ReportFacet()); + } } - facets.add(new DataFacet(CSV, "CSV data")); - - if (res.getReport().hasProblems()) { - facets.add(new ReportFacet()); - } + return res; } - - return res; + else if(artifact instanceof ChartArtifact) { + ChartArtifact chart = (ChartArtifact)artifact; + facets.add(new EmptyFacet()); + return null; + } + return null; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : diff -r e50a928187cd -r e8fc770d2f8c flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java Wed Jan 18 13:39:16 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java Wed Jan 18 14:36:16 2012 +0000 @@ -10,6 +10,7 @@ import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.WINFOArtifact; +import de.intevation.flys.artifacts.ChartArtifact; import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.ReportFacet; @@ -36,6 +37,10 @@ List facets, Object old ) { + if (artifact instanceof ChartArtifact) { + return null; + } + WINFOArtifact winfo = (WINFOArtifact)artifact; CalculationResult res = old instanceof CalculationResult diff -r e50a928187cd -r e8fc770d2f8c flys-artifacts/src/main/java/de/intevation/flys/exports/ChartGenerator.java --- a/flys-artifacts/src/main/java/de/intevation/flys/exports/ChartGenerator.java Wed Jan 18 13:39:16 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/ChartGenerator.java Wed Jan 18 14:36:16 2012 +0000 @@ -27,7 +27,7 @@ import de.intevation.flys.model.River; import de.intevation.flys.artifacts.WINFOArtifact; - +import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.resources.Resources; import de.intevation.flys.utils.FLYSUtils; @@ -215,7 +215,7 @@ protected String getRiverName() { - WINFOArtifact flys = (WINFOArtifact) master; + FLYSArtifact flys = (FLYSArtifact) master; River river = FLYSUtils.getRiver(flys); return (river != null) ? river.getName() : ""; @@ -223,7 +223,7 @@ protected double[] getRange() { - WINFOArtifact flys = (WINFOArtifact) master; + FLYSArtifact flys = (FLYSArtifact) master; return FLYSUtils.getKmRange(flys); } diff -r e50a928187cd -r e8fc770d2f8c flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java --- a/flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java Wed Jan 18 13:39:16 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java Wed Jan 18 14:36:16 2012 +0000 @@ -914,10 +914,21 @@ */ public Range[] getRangesForAxis(int index) { logger.debug("getRangesForAxis " + index); - return new Range[] { - xRanges.get(Integer.valueOf(0)), - yRanges.get(Integer.valueOf(index)) - }; + + Range rx = xRanges.get(Integer.valueOf(0)); + Range ry = yRanges.get(Integer.valueOf(index)); + + if (rx == null) { + logger.warn("Range for x axis not set." + + " Using default values: 0 - 1."); + rx = new Range(0, 1); + } + if (ry == null) { + logger.warn("Range for y" + index + + " axis not set. Using default values: 0 - 1."); + ry = new Range(0, 1); + } + return new Range[] {rx, ry}; }