annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WaterlevelTwinPanelValidator.java @ 8870:c26fb37899ca

Introduced groups for modules. Modules marked with the same group-id, will be put together in the ui. Also using now the localization info from the server instead of localizing the modules again on the client side.
author gernotbelger
date Wed, 07 Feb 2018 11:59:13 +0100
parents 8f6d6d26e96f
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