Mercurial > dive4elements > river
changeset 2132:e8fc770d2f8c
'New Chart' for computed discharge curve.
flys-artifacts/trunk@3707 c6561f87-3c4e-4783-a992-168aeb5c3f6f
line wrap: on
line diff
--- 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 <raimund.renkert@intevation.de> + + '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 <felix.wolfsteller@intevation.de> Added stub hyk infrastructure.
--- 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 @@ <data name="chart_type" type="String" /> </state> - <transition transition="de.intevation.flys.artifacts.transitions.DefaultTransition"> + <transition transition="de.intevation.flys.artifacts.transitions.ValueCompareTransition"> <from state="state.chart.type"/> <to state="state.chart.w_differences"/> - <condition data="chart_type" value="new.chart.w_differences" operator="equals"/> - </transition> - - <transition transition="de.intevation.flys.artifacts.transitions.DefaultTransition"> - <from state="state.chart.type"/> - <to state="state.chart.durationcurve"/> - <condition data="chart_type" value="new.chart.durationcurve" operator="equals"/> + <condition data="chart_type" value="chart.new.w_differences" operator="equal"/> </transition> - <transition transition="de.intevation.flys.artifacts.transitions.DefaultTransition"> + <transition transition="de.intevation.flys.artifacts.transitions.ValueCompareTransition"> <from state="state.chart.type"/> - <to state="state.chart.computeddischargecurve"/> - <condition data="chart_type" value="new.chart.computeddischargecurve" operator="equals"/> + <to state="state.chart.durationcurve"/> + <condition data="chart_type" value="chart.new.durationcurve" operator="equal"/> </transition> - <transition transition="de.intevation.flys.artifacts.transitions.DefaultTransition"> + <transition transition="de.intevation.flys.artifacts.transitions.ValueCompareTransition"> + <from state="state.chart.type"/> + <to state="state.chart.km"/> + <condition data="chart_type" value="chart.new.computeddischargecurve" operator="equal"/> + </transition> + + <transition transition="de.intevation.flys.artifacts.transitions.ValueCompareTransition"> <from state="state.chart.type"/> <to state="state.chart.waterlevel"/> - <condition data="chart_type" value="new.chart.waterlevel" operator="equals"/> + <condition data="chart_type" value="chart.new.waterlevel" operator="equal"/> </transition> - <transition transition="de.intevation.flys.artifacts.transitions.DefaultTransition"> + <transition transition="de.intevation.flys.artifacts.transitions.ValueCompareTransition"> <from state="state.chart.type"/> <to state="state.chart.discharge_longitudinal_section"/> - <condition data="chart_type" value="new.chart.discharge_longitudinal_section" operator="equals"/> + <condition data="chart_type" value="chart.new.discharge_longitudinal_section" operator="equal"/> </transition> + <state id="state.chart.km" description="state.chart.km" state="de.intevation.flys.artifacts.states.LocationSelect"> + <data name="ld_locations" type="Double[]"/> + </state> + <state id="state.chart.w_differences" description="state.winfo.w_differences" state="de.intevation.flys.artifacts.states.WDifferencesState"> <outputmodes> <outputmode name="w_differences" description="output.w_differences" mime-type="image/png" type="chart"> @@ -73,22 +77,6 @@ </outputmodes> </state> - <state id="state.chart.computeddischargecurve" description="state.winfo.computeddischargecurve" state="de.intevation.flys.artifacts.states.ComputedDischargeCurveState"> - <outputmodes> - <outputmode name="computed_discharge_curve" description="output.computed_discharge_curve" mime-type="image/png" type="chart"> - <facets> - <facet name="computed_discharge_curve.q" description="facet.computed_discharge_curve.q"/> - <facet name="computed_discharge_curve.mainvalues.q" description="facet.computed_discharge_curve.mainvalues.q"/> - <facet name="computed_discharge_curve.mainvalues.w" description="facet.computed_discharge_curve.mainvalues.w"/> - <facet name="other.wqkms" description="facet.other.wqkms"/> - <facet name="other.wq" description="Point-like data like fixations"/> - <facet name="other.wq" description="Point-like data like fixations"/> - <facet name="other.wkms.interpol" description="Height over km, like flood protections."/> - </facets> - </outputmode> - </outputmodes> - </state> - <state id="state.chart.waterlevel" description="state.winfo.waterlevel" state="de.intevation.flys.artifacts.states.WaterlevelState"> <outputmodes> <outputmode name="longitudinal_section" description="output.longitudinal_section" mime-type="image/png" type="chart"> @@ -122,5 +110,29 @@ </outputmode> </outputmodes> </state> + + <transition transition="de.intevation.flys.artifacts.transitions.ValueCompareTransition"> + <from state="state.chart.km"/> + <to state="state.chart.computeddischargecurve"/> + <condition data="chart_type" value="chart.new.computeddischargecurve" operator="equal"/> + </transition> + + <state id="state.chart.computeddischargecurve" description="state.chart.computeddischargecurve" state="de.intevation.flys.artifacts.states.ComputedDischargeCurveState"> + <outputmodes> + <outputmode name="computed_discharge_curve" description="output.computed_discharge_curve" mime-type="image/png" type="chart"> + <facets> + <facet name="empty.facet" description="Empty"/> + <facet name="computed_discharge_curve.q" description="facet.computed_discharge_curve.q"/> + <facet name="computed_discharge_curve.mainvalues.q" description="facet.computed_discharge_curve.mainvalues.q"/> + <facet name="computed_discharge_curve.mainvalues.w" description="facet.computed_discharge_curve.mainvalues.w"/> + <facet name="other.wqkms" description="facet.other.wqkms"/> + <facet name="other.wq" description="Point-like data like fixations"/> + <facet name="other.wq" description="Point-like data like fixations"/> + <facet name="other.wkms.interpol" description="Height over km, like flood protections."/> + </facets> + </outputmode> + </outputmodes> + </state> + </states> </artifact>
--- 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<Output> outs = flys.getCurrentOutputs(context); int num = outs == null ? 0 : outs.size();
--- 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"); }
--- /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 :
--- 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
--- 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<Facet> 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 :
--- 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<Facet> facets, Object old ) { + if (artifact instanceof ChartArtifact) { + return null; + } + WINFOArtifact winfo = (WINFOArtifact)artifact; CalculationResult res = old instanceof CalculationResult
--- 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); }
--- 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}; }