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