aheinecke@6060: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde aheinecke@6060: * Software engineering by Intevation GmbH aheinecke@6060: * aheinecke@6060: * This file is Free Software under the GNU AGPL (>=v3) aheinecke@6060: * and comes with ABSOLUTELY NO WARRANTY! Check out the aheinecke@6060: * documentation coming with Dive4Elements River for details. aheinecke@6060: */ aheinecke@6060: aheinecke@6060: package org.dive4elements.river.client.client.ui; aheinecke@6060: aheinecke@6060: import com.google.gwt.i18n.client.NumberFormat; aheinecke@6060: aheinecke@6060: import java.util.ArrayList; aheinecke@6060: import java.util.List; aheinecke@6060: import java.util.Map; aheinecke@6060: aheinecke@6060: /** aheinecke@6060: * This UIProvider creates a widget to enter W or Q data for aheinecke@6060: * Fixation analysis aheinecke@6060: * aheinecke@6060: * @author Andre Heinecke aheinecke@6060: */ aheinecke@6060: public class WQAdaptedFixingInputPanel aheinecke@6060: extends WQAdaptedInputPanel aheinecke@6060: { aheinecke@6060: private static final long serialVersionUID = -3218827566805476423L; aheinecke@6060: aheinecke@6060: @Override aheinecke@6060: protected List validateRange(Map ranges) { aheinecke@6060: List errors = new ArrayList(); aheinecke@6060: NumberFormat nf = NumberFormat.getDecimalFormat(); aheinecke@6060: teichmann@6068: for (DoubleArrayPanel dap: wqranges.values()) { aheinecke@6060: aheinecke@6060: if (!dap.validateForm()) { aheinecke@6060: errors.add(MSG.error_invalid_double_value()); aheinecke@6060: return errors; aheinecke@6060: } aheinecke@6060: aheinecke@6060: int idx = 0; aheinecke@6060: aheinecke@6060: double[] values = dap.getInputValues(); aheinecke@6060: aheinecke@6060: double[] good = new double[values.length]; aheinecke@6060: aheinecke@6060: for (double value: values) { aheinecke@6060: if (value <= 0) { aheinecke@6060: String tmp = MSG.error_validate_positive(); aheinecke@6060: tmp = tmp.replace("$1", nf.format(value)); aheinecke@6060: errors.add(tmp); aheinecke@6060: } else { aheinecke@6060: good[idx++] = value; aheinecke@6060: } aheinecke@6060: } aheinecke@6060: aheinecke@6060: double[] justGood = new double[idx]; aheinecke@6060: for (int i = 0; i < justGood.length; i++) { aheinecke@6060: justGood[i] = good[i]; aheinecke@6060: } aheinecke@6060: aheinecke@6060: if (!errors.isEmpty()) { aheinecke@6060: dap.setValues(justGood); aheinecke@6060: } aheinecke@6060: } aheinecke@6060: return errors; aheinecke@6060: } aheinecke@6060: } aheinecke@6060: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :