annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WaterlevelTwinPanelValidator.java @ 8852:8f6d6d26e96f

Refaktored the DatacageTwinPanel so it is reusable.
author gernotbelger
date Thu, 18 Jan 2018 18:32:30 +0100
parents
children
rev   line source
8852
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
2 * Software engineering by
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
5 *
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
9 */
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.client.client.ui;
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
11
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
12 import java.util.ArrayList;
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
13 import java.util.List;
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
14
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
15 import org.dive4elements.river.client.client.FLYSConstants;
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
16 import org.dive4elements.river.client.client.ui.AbstractPairRecommendationPanel.IValidator;
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
17
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
18 import com.smartgwt.client.widgets.grid.ListGrid;
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
19 import com.smartgwt.client.widgets.grid.ListGridRecord;
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
20
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
21 /**
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
22 * Contains the old code from the validate-method of the DatacageTwinPanel.
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
23 *
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
24 * @author Gernot Belger
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
25 */
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
26 public final class WaterlevelTwinPanelValidator implements IValidator {
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
27
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
28 @Override
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
29 public List<String> validate(final ListGrid differencesList, final FLYSConstants msgProvider) {
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
30
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
31 final List<String> errors = new ArrayList<String>();
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
32 if (differencesList.getRecords().length == 0) {
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
33 // FIXME: waterlevel dependent! This will lead to a bad error message in English, for M-Info/Bed-Differences calculation
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
34 errors.add(msgProvider.error_no_waterlevel_pair_selected());
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
35 }
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
36 // Check whether minuend and subtrahend are equal.
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
37 for (ListGridRecord record: differencesList.getRecords()) {
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
38 RecommendationPairRecord r = (RecommendationPairRecord) record;
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
39 if (r.getFirst().equals(r.getSecond())) {
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
40 // FIXME: this is still waterlevel specific!
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
41 // TODO: delegate validation to specific implementations
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
42 errors.add(msgProvider.error_same_waterlevels_in_pair());
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
43 }
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
44 }
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
45
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
46 return errors;
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
47 }
8f6d6d26e96f Refaktored the DatacageTwinPanel so it is reusable.
gernotbelger
parents:
diff changeset
48 }

http://dive4elements.wald.intevation.org