Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/fixation/FixRealizingCompute.java @ 4173:7d4480c0e68e
Allow users to select the current relevant discharge table in historical discharge table calculattion.
In addition to this, the discharge tables in the helper panel displayed in the client is ordered in time.
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 18 Oct 2012 12:13:48 +0200 |
parents | d52c4ca93ffb |
children | acd7437f66f0 |
line wrap: on
line source
package de.intevation.flys.artifacts.states.fixation; import java.util.List; import org.apache.log4j.Logger; import de.intevation.artifactdatabase.state.Facet; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.CallMeta; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.access.FixRealizingAccess; import de.intevation.flys.artifacts.model.CalculationResult; import de.intevation.flys.artifacts.model.DataFacet; import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.ReportFacet; import de.intevation.flys.artifacts.model.WQCKms; import de.intevation.flys.artifacts.model.WQKms; import de.intevation.flys.artifacts.model.fixings.FixOutlierFacet; import de.intevation.flys.artifacts.model.fixings.FixRealizingCalculation; import de.intevation.flys.artifacts.model.fixings.FixRealizingResult; import de.intevation.flys.artifacts.model.fixings.FixReferenceEventsFacet; import de.intevation.flys.artifacts.model.fixings.FixWQCurveFacet; import de.intevation.flys.artifacts.model.fixings.FixWaterlevelFacet; import de.intevation.flys.artifacts.resources.Resources; import de.intevation.flys.artifacts.states.DefaultState; /** * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> */ public class FixRealizingCompute extends DefaultState implements FacetTypes { /** The logger used in this class. */ private static Logger logger = Logger.getLogger(FixRealizingCompute.class); public static final String I18N_WQ_CURVE = "fix.vollmer.wq.curve"; public static final String I18N_WQ_OUTLIER = "fix.vollmer.wq.outliers"; public static final String I18N_WQ_EVENTS = "fix.vollmer.wq.events"; /** * The default constructor that initializes an empty State object. */ public FixRealizingCompute() { } @Override public Object computeAdvance( FLYSArtifact artifact, String hash, CallContext context, List<Facet> facets, Object old ) { logger.debug("FixRealizingCompute.computeAdvance"); CalculationResult res; FixRealizingAccess access = new FixRealizingAccess(artifact); if (old instanceof CalculationResult) { res = (CalculationResult)old; } else { FixRealizingCalculation calc = new FixRealizingCalculation(access); res = calc.calculate(); } if (facets == null) { return res; } if (res.getReport().hasProblems()) { facets.add(new ReportFacet()); } String id = getID(); CallMeta meta = context.getMeta(); FixRealizingResult fixRes = (FixRealizingResult) res.getData(); WQKms [] wqkms = fixRes != null ? fixRes.getWQKms() : new WQKms[0]; for (int i = 0; i < wqkms.length; i++) { String nameW = null; String nameQ = null; if (access.isQ()) { nameQ = wqkms[i].getName(); nameW = "W(" + nameQ + ")"; } else { nameW = wqkms[i].getName(); nameQ = "Q(" + nameW + ")"; } Facet w = new FixWaterlevelFacet( i, LONGITUDINAL_W, nameW); Facet q = new FixWaterlevelFacet( i, LONGITUDINAL_Q, nameQ); facets.add(w); facets.add(q); if (wqkms[i] instanceof WQCKms) { String nameC = nameW.replace( "benutzerdefiniert", "benutzerdefiniert [korrigiert]"); Facet c = new FixWaterlevelFacet( i, DISCHARGE_LONGITUDINAL_C, nameC); facets.add(c); } } if (wqkms.length > 0) { facets.add( new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id)); facets.add( new DataFacet(WST, "WST data", ComputeType.ADVANCE, hash, id)); facets.add( new DataFacet(PDF, "PDF data", ComputeType.ADVANCE, hash, id)); } facets.add(new FixWQCurveFacet( 0, Resources.getMsg(meta, I18N_WQ_CURVE, I18N_WQ_CURVE))); facets.add(new FixReferenceEventsFacet( 0, FIX_REFERENCE_EVENTS_WQ, Resources.getMsg(meta, I18N_WQ_EVENTS, I18N_WQ_EVENTS))); facets.add(new FixOutlierFacet( 0, FIX_OUTLIER, Resources.getMsg(meta, I18N_WQ_OUTLIER, I18N_WQ_OUTLIER))); return res; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :