Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WaterlevelGroundDifferences.java @ 4187:21f4e4b79121
Refactor GaugeDischargeCurveFacet to be able to set a facet name
For adding another output of the GaugeDischargeCurveArtifact it is necessary to
provide to facet instances with different names. Therefore the
GaugeDischargeCurveFacet is extended to set the facet name in the constructor.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Fri, 19 Oct 2012 13:25:49 +0200 |
parents | e7664917dbdf |
children | 1358d0c8481c |
line wrap: on
line source
package de.intevation.flys.artifacts.states; import org.w3c.dom.Element; import org.apache.log4j.Logger; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.common.utils.XMLUtils; import de.intevation.artifactdatabase.ProtocolUtils; /** * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class WaterlevelGroundDifferences extends RangeState { public static final String LOWER_FIELD = "diff_from"; public static final String UPPER_FIELD = "diff_to"; public static final String DIFF_FIELD = "diff_diff"; public static final double DEFAULT_STEP = 0d; private static Logger logger = Logger.getLogger(WaterlevelGroundDifferences.class); @Override protected String getLowerField() { return LOWER_FIELD; } @Override protected String getUpperField() { return UPPER_FIELD; } @Override protected String getStepField() { return DIFF_FIELD; } @Override protected double[] getMinMax(Artifact artifact) { return new double[] { -Double.MAX_VALUE, Double.MAX_VALUE }; } @Override protected String getUIProvider() { return "waterlevel_ground_panel"; } protected double getDefaultStep() { return DEFAULT_STEP; } @Override protected Element[] createItems( XMLUtils.ElementCreator cr, Artifact artifact, String name, CallContext context) { double[] minmax = getMinMax(artifact); double minVal = Double.MIN_VALUE; double maxVal = Double.MAX_VALUE; if (minmax != null) { minVal = minmax[0]; maxVal = minmax[1]; } else { logger.warn("Could not read min/max distance values!"); } if (name.equals(LOWER_FIELD)) { Element min = createItem( cr, new String[] {"min", new Double(minVal).toString()}); return new Element[] { min }; } else if (name.equals(UPPER_FIELD)) { Element max = createItem( cr, new String[] {"max", new Double(maxVal).toString()}); return new Element[] { max }; } else { Element step = createItem( cr, new String[] {"step", String.valueOf(getDefaultStep())}); return new Element[] { step }; } } protected Element createItem(XMLUtils.ElementCreator cr, Object obj) { Element item = ProtocolUtils.createArtNode(cr, "item", null, null); Element label = ProtocolUtils.createArtNode(cr, "label", null, null); Element value = ProtocolUtils.createArtNode(cr, "value", null, null); String[] arr = (String[]) obj; label.setTextContent(arr[0]); value.setTextContent(arr[1]); item.appendChild(label); item.appendChild(value); return item; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :