[PATCH] vegzones improved
Wald Commits
scm-commit at wald.intevation.org
Tue May 29 15:19:15 CEST 2018
# HG changeset patch
# User gernotbelger
# Date 1527599943 -7200
# Node ID 41f4bc83aa7aa90c411026e2c5385fe1c1d0ddbb
# Parent ffd4e2b0381c205c0ed5b58d886b8aad58b54aab
vegzones improved
diff -r ffd4e2b0381c -r 41f4bc83aa7a artifacts/doc/conf/artifacts/uinfo.xml
--- a/artifacts/doc/conf/artifacts/uinfo.xml Tue May 29 11:38:13 2018 +0200
+++ b/artifacts/doc/conf/artifacts/uinfo.xml Tue May 29 15:19:03 2018 +0200
@@ -248,13 +248,13 @@
<transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
<from state="state.uinfo.calculation_mode" />
- <to state="state.uinfo.distance" />
+ <to state="state.uinfo.distance_only" />
<condition data="calculation_mode" value="uinfo_vegetation_zones" operator="equal" />
</transition>
<transition transition="org.dive4elements.river.artifacts.transitions.ValueCompareTransition">
- <from state="state.uinfo.distance" />
+ <from state="state.uinfo.distance_only" />
<to state="state.uinfo.vegetation_zones.table" />
<condition data="calculation_mode" value="uinfo_vegetation_zones" operator="equal" />
</transition>
diff -r ffd4e2b0381c -r 41f4bc83aa7a artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/commons/AbstractUInfoExporter.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/commons/AbstractUInfoExporter.java Tue May 29 11:38:13 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/commons/AbstractUInfoExporter.java Tue May 29 15:19:03 2018 +0200
@@ -92,9 +92,6 @@
// "# Gewässer: "
writeCSVMetaEntry(writer, I18NStrings.CSV_META_RIVER, msg(I18NStrings.CSV_META_RIVER_LABEL), river.getName());
- // "# Höhensystem des Flusses: "
- writeCSVMetaEntry(writer, I18NStrings.CSV_META_HEIGHT_UNIT_RIVER, river.getWstUnit()); // move to child?
-
if (calcRange != null) {
// "# Ort/Bereich (km): "
writeCSVMetaEntry(writer, I18NStrings.CSV_META_RANGE, msg(I18NStrings.CSV_META_RANGE_LABEL), getKmFormatter().format(calcRange.getMinimumDouble()),
diff -r ffd4e2b0381c -r 41f4bc83aa7a artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationExporter.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationExporter.java Tue May 29 11:38:13 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationExporter.java Tue May 29 15:19:03 2018 +0200
@@ -15,6 +15,7 @@
import org.apache.log4j.Logger;
import org.dive4elements.river.artifacts.common.GeneralResultType;
+import org.dive4elements.river.artifacts.common.I18NStrings;
import org.dive4elements.river.artifacts.common.JasperReporter;
import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource;
import org.dive4elements.river.artifacts.common.ResultRow;
@@ -46,6 +47,10 @@
log.info("SalixLineExporter.writeCSVMeta");
super.writeCSVGlobalMetadataDefaults(writer, results);
+
+ // "# Höhensystem des Flusses: "
+ writeCSVMetaEntry(writer, I18NStrings.CSV_META_HEIGHT_UNIT_RIVER, results.getRiver().getWstUnit());
+
writer.writeNext(new String[] { "" }); // break line
}
diff -r ffd4e2b0381c -r 41f4bc83aa7a artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineExporter.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineExporter.java Tue May 29 11:38:13 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineExporter.java Tue May 29 15:19:03 2018 +0200
@@ -15,6 +15,7 @@
import org.apache.log4j.Logger;
import org.dive4elements.river.artifacts.common.GeneralResultType;
+import org.dive4elements.river.artifacts.common.I18NStrings;
import org.dive4elements.river.artifacts.common.JasperReporter;
import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource;
import org.dive4elements.river.artifacts.common.ResultRow;
@@ -47,6 +48,9 @@
super.writeCSVGlobalMetadataDefaults(writer, results);
+ // "# Höhensystem des Flusses: "
+ writeCSVMetaEntry(writer, I18NStrings.CSV_META_HEIGHT_UNIT_RIVER, results.getRiver().getWstUnit());
+
// Add Auswerter, Bezugspegel, Jahr/Zeitraum der Wasserspiegellage
// "# Auswerter: "
diff -r ffd4e2b0381c -r 41f4bc83aa7a artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesCalculation.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesCalculation.java Tue May 29 11:38:13 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesCalculation.java Tue May 29 15:19:03 2018 +0200
@@ -15,7 +15,7 @@
import org.apache.commons.lang.math.DoubleRange;
import org.dive4elements.artifacts.CallContext;
-import org.dive4elements.river.artifacts.access.RiverAccess;
+import org.dive4elements.river.artifacts.access.RangeAccess;
import org.dive4elements.river.artifacts.common.ResultRow;
import org.dive4elements.river.artifacts.model.Calculation;
import org.dive4elements.river.artifacts.model.CalculationResult;
@@ -45,9 +45,9 @@
final String user = CalculationUtils.findArtifactUser(this.context, uinfo);
// FIXME: remove, check other states as well
- final RiverAccess access = new RiverAccess(uinfo);
+ final RangeAccess access = new RangeAccess(uinfo);
final River river = access.getRiver();
- final DoubleRange calcRange = null;
+ final DoubleRange calcRange = access.getRange();
final RiverInfo riverInfo = new RiverInfo(river);
final VegetationzonesAccess vAccess = new VegetationzonesAccess(uinfo);
diff -r ffd4e2b0381c -r 41f4bc83aa7a gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.java Tue May 29 11:38:13 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.java Tue May 29 15:19:03 2018 +0200
@@ -1517,4 +1517,11 @@
String bundu();
+ String uinfo_vegetation_zones_validation_empty();
+
+ String uinfo_vegetation_zones_validation_range();
+
+ String uinfo_vegetation_zones_validation_from_greater_to();
+
+ String uinfo_vegetation_zones_invalid_integer();
}
\ No newline at end of file
diff -r ffd4e2b0381c -r 41f4bc83aa7a gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.properties
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.properties Tue May 29 11:38:13 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.properties Tue May 29 15:19:03 2018 +0200
@@ -810,5 +810,9 @@
uinfo_vegetation_zones_label = Vegetationszonen
uinfo_vegetation_zones_from = \u00dcfd von [d/a]
uinfo_vegetation_zones_to = \u00dcfd bis [d/a]
+uinfo_vegetation_zones_validation_empty = Eingabefeld leer.
+uinfo_vegetation_zones_validation_range = Werte m\u00fcssen zwischen 0 und 365 liegen.
+uinfo_vegetation_zones_validation_from_greater_to = Der Wert f\u00fcr "\u00dcfd von" muss kleiner als "\u00dcfd bis".
+uinfo_vegetation_zones_invalid_integer = Nur Ganzzahlen erlaubt.
bundu = Betrieb und Unterhaltung
\ No newline at end of file
diff -r ffd4e2b0381c -r 41f4bc83aa7a gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_de.properties
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_de.properties Tue May 29 11:38:13 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_de.properties Tue May 29 15:19:03 2018 +0200
@@ -810,5 +810,9 @@
uinfo_vegetation_zones_label = Vegetationszonen
uinfo_vegetation_zones_from = \u00dcfd von [d/a]
uinfo_vegetation_zones_to = \u00dcfd bis [d/a]
+uinfo_vegetation_zones_validation_empty = Eingabefeld leer.
+uinfo_vegetation_zones_validation_range = Werte m\u00fcssen zwischen 0 und 365 liegen.
+uinfo_vegetation_zones_validation_from_greater_to = Der Wert f\u00fcr "\u00dcfd von" muss kleiner als "\u00dcfd bis".
+uinfo_vegetation_zones_invalid_integer = Nur Ganzzahlen erlaubt.
bundu = Betrieb und Unterhaltung
\ No newline at end of file
diff -r ffd4e2b0381c -r 41f4bc83aa7a gwt-client/src/main/java/org/dive4elements/river/client/client/ui/PanelHelper.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/PanelHelper.java Tue May 29 11:38:13 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/PanelHelper.java Tue May 29 15:19:03 2018 +0200
@@ -9,6 +9,7 @@
*/
package org.dive4elements.river.client.client.ui;
+import com.smartgwt.client.widgets.form.fields.IntegerItem;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.form.validator.IsIntegerValidator;
import com.smartgwt.client.widgets.form.validator.Validator;
@@ -32,6 +33,14 @@
return item;
}
+ public static final IntegerItem createIntegerItem(final String identifier, final String title, final int width, final Validator... validator) {
+ final IntegerItem item = new IntegerItem(identifier, title);
+ item.setWidth(width);
+ item.setWrapTitle(false);
+ item.setValidators(validator);
+ return item;
+ }
+
public static VLayout getSpacer(final int height) {
final VLayout spacer = new VLayout();
spacer.setHeight(height);
diff -r ffd4e2b0381c -r 41f4bc83aa7a gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/AbstractVegZonesTablePanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/AbstractVegZonesTablePanel.java Tue May 29 11:38:13 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/AbstractVegZonesTablePanel.java Tue May 29 15:19:03 2018 +0200
@@ -20,15 +20,20 @@
import org.dive4elements.river.client.shared.model.DefaultData;
import org.dive4elements.river.client.shared.model.DefaultDataItem;
+import com.google.gwt.core.client.GWT;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.types.Alignment;
+import com.smartgwt.client.types.ListGridFieldType;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.Label;
-import com.smartgwt.client.widgets.form.fields.TextItem;
+import com.smartgwt.client.widgets.form.validator.IntegerRangeValidator;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
+import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
+import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
import com.smartgwt.client.widgets.layout.HLayout;
+import com.smartgwt.client.widgets.layout.Layout;
import com.smartgwt.client.widgets.layout.VLayout;
/**
@@ -37,26 +42,18 @@
*/
public abstract class AbstractVegZonesTablePanel extends AbstractUIProvider {
private static final long serialVersionUID = 1L;
- public static final String TABLE_CELL_SEPARATOR = "TABLE_CELL_SEPARATOR";
- public static final String TABLE_ROW_SEPARATOR = "TABLE_ROW_SEPARATOR";
- protected static final String datakey = "vegzones";
+ private static final String TABLE_CELL_SEPARATOR = "TABLE_CELL_SEPARATOR";
- protected final ListGrid elements = new ListGrid();
- protected TextItem vegzone;
- protected TextItem start;
- protected TextItem end;
- private ListGrid table;
+ private static final String TABLE_ROW_SEPARATOR = "TABLE_ROW_SEPARATOR";
- protected ListGridField vegzoneField;// = new ListGridField("vegzone", this.MSG.uinfo_vegetation_zones_label());
- protected ListGridField fromField;// = new ListGridField("from", this.MSG.uinfo_vegetation_zones_from());
- protected ListGridField toField;// = new ListGridField("to", this.MSG.uinfo_vegetation_zones_to());
+ private static final String datakey = "vegzones";
- final protected VLayout root = new VLayout();
- final protected HLayout input = new HLayout();
- final protected VLayout tableLayout = new VLayout();
+ private final ListGrid elements = new ListGrid();
- protected final void createTable(final DataList data, final int width) {
+ // private final HLayout input = new HLayout();
+
+ protected final ListGrid createTable(final Layout root, final DataList data, final int width, final boolean editable) {
data.add(VegetationzonesTablePanel.getDummyData()); // TODO: GET REAL DATA!
final Label title = new Label(data.get(0).getDescription());
@@ -67,85 +64,75 @@
this.elements.setShowHeaderContextMenu(false);
this.elements.setCanReorderFields(false);
this.elements.setCanSort(false);
- this.elements.setCanEdit(false);
- this.vegzoneField = new ListGridField("vegzone", this.MSG.uinfo_vegetation_zones_label());
- this.fromField = new ListGridField("from", this.MSG.uinfo_vegetation_zones_from());
- this.toField = new ListGridField("to", this.MSG.uinfo_vegetation_zones_to());
- this.vegzoneField.setWidth(245);
- this.fromField.setWidth(80);
- this.toField.setWidth(80);
- this.fromField.setAlign(Alignment.RIGHT);
- this.toField.setAlign(Alignment.RIGHT);
+ this.elements.setCanEdit(editable);
+
+ final ListGridField vegzoneField = new ListGridField("vegzone", this.MSG.uinfo_vegetation_zones_label());
+ vegzoneField.setType(ListGridFieldType.TEXT);
+ vegzoneField.setWidth(245);
+
+ final ListGridField fromField = new ListGridField("from", this.MSG.uinfo_vegetation_zones_from());
+ fromField.setType(ListGridFieldType.INTEGER);
+ final IntegerRangeValidator validator = new IntegerRangeValidator();
+ validator.setMin(0);
+ validator.setMax(365);
+
+ fromField.setValidators(validator);
+ fromField.setWidth(80);
+ fromField.setAlign(Alignment.RIGHT);
+
+ final ListGridField toField = new ListGridField("to", this.MSG.uinfo_vegetation_zones_to());
+ toField.setType(ListGridFieldType.INTEGER);
+ toField.setValidators(validator);
+ toField.setWidth(80);
+ toField.setAlign(Alignment.RIGHT);
+
+ if (editable) {
+ final ListGridField removeField = createRemoveField();
+ this.elements.setFields(vegzoneField, fromField, toField, removeField);
+
+ } else {
+ this.elements.setFields(vegzoneField, fromField, toField);
+ }
addDataInit(data);
- this.root.addMember(title);
- this.tableLayout.addMember(this.elements);
- this.root.addMember(this.input);
- this.root.addMember(this.tableLayout);
- this.root.addMember(PanelHelper.getSpacer(10));
+ root.addMember(title);
+ root.addMember(this.elements);
+ root.addMember(PanelHelper.getSpacer(10));
+ return this.elements;
}
- protected final Canvas createHelper() {
- this.table = new ListGrid();
- this.table.setShowHeaderContextMenu(false);
- this.table.setWidth100();
- this.table.setShowRecordComponents(true);
- this.table.setShowRecordComponentsByCell(true);
- this.table.setHeight100();
- this.table.setEmptyMessage(this.MSG.empty_table());
- this.table.setCanReorderFields(false);
+ private ListGridField createRemoveField() {
- /* Input support pins */
- // final String baseUrl = GWT.getHostPageBaseURL();
- // final ListGridField pinFrom = new ListGridField("fromIcon", this.MSG.uinfo_vegetation_zones_from());
- // pinFrom.setWidth(300);
- // pinFrom.setType(ListGridFieldType.ICON);
- // pinFrom.setCellIcon(baseUrl + this.MSG.markerGreen());
- //
- // final ListGridField pinTo = new ListGridField("toIcon", this.MSG.uinfo_vegetation_zones_to());
- // pinTo.setType(ListGridFieldType.ICON);
- // pinTo.setWidth(300);
- // pinTo.setCellIcon(baseUrl + this.MSG.markerRed());
- //
- // pinFrom.addRecordClickHandler(new RecordClickHandler() {
- // @Override
- // public void onRecordClick(final RecordClickEvent e) {
- // final Record r = e.getRecord();
- // VegetationzonesTableEditPanel.this.vegzone.setValue(r.getAttribute("date")); // date??
- // }
- // });
- //
- // pinFrom.addRecordClickHandler(new RecordClickHandler() {
- // @Override
- // public void onRecordClick(final RecordClickEvent e) {
- // final Record r = e.getRecord();
- // VegetationzonesTableEditPanel.this.start.setValue(r.getAttribute("date"));
- // }
- // });
- //
- // pinTo.addRecordClickHandler(new RecordClickHandler() {
- // @Override
- // public void onRecordClick(final RecordClickEvent e) {
- // final Record r = e.getRecord();
- // VegetationzonesTableEditPanel.this.end.setValue(r.getAttribute("date"));
- // }
- // });
- //
- // final ListGridField date = new ListGridField("date", this.MSG.year());
- // date.setType(ListGridFieldType.TEXT);
- // date.setWidth(100);
- //
- // final ListGridField descr = new ListGridField("description", this.MSG.description());
- // descr.setType(ListGridFieldType.TEXT);
- // descr.setWidth("*");
- //
- // this.table.setFields(pinFrom, pinTo, date, descr);
- return this.table;
+ final ListGridField removeField = new ListGridField("_removeRecord", "Remove Record") {
+ {
+ setType(ListGridFieldType.ICON);
+ setIcon(GWT.getHostPageBaseURL() + AbstractVegZonesTablePanel.this.MSG.removeFeature());
+ setCanEdit(false);
+ setCanFilter(false);
+ setCanSort(false);
+ setCanGroupBy(false);
+ setCanFreeze(false);
+ setWidth(25);
+ }
+ };
+
+ this.elements.addRecordClickHandler(new RecordClickHandler() {
+ @Override
+ public void onRecordClick(final RecordClickEvent event) {
+ // Just handle remove-clicks
+ if (!event.getField().getName().equals(removeField.getName())) {
+ return;
+ }
+ event.getViewer().removeData(event.getRecord());
+ }
+ });
+
+ return removeField;
}
- public abstract Canvas createWidget(final DataList data);
+ public abstract void createWidget(final Layout root, final DataList data);
private final void addDataInit(final DataList data) {
for (final Data dataItemContainer : data.getAll()) {
@@ -166,16 +153,17 @@
@Override
public final Canvas create(final DataList data) {
final VLayout layout = new VLayout();
- final Canvas helper = createHelper();
- this.helperContainer.addMember(helper);
+
+ // final Canvas helper = createHelper();
+ // this.helperContainer.addMember(helper);
final Canvas submit = getNextButton();
- final Canvas widget = createWidget(data);
- layout.addMember(widget);
- layout.addMember(submit); // TODO: SUBMIT
+ final VLayout root = new VLayout();
+ createWidget(root, data);
- // fetchSedimentLoadData(); //TODO: feed from database...
+ layout.addMember(root);
+ layout.addMember(submit);
return layout;
}
@@ -194,9 +182,9 @@
final Data str = getData(items, datakey);
final DataItem[] strItems = str.getItems();
- final String[] entries = strItems[0].getLabel().split(VegetationzonesTablePanel.TABLE_ROW_SEPARATOR);
+ final String[] entries = strItems[0].getLabel().split(AbstractVegZonesTablePanel.TABLE_ROW_SEPARATOR);
for (final String entry : entries) {
- final String[] vals = entry.split(VegetationzonesTablePanel.TABLE_CELL_SEPARATOR);
+ final String[] vals = entry.split(AbstractVegZonesTablePanel.TABLE_CELL_SEPARATOR);
final Label dateLabel = new Label(vals[0] + " (" + vals[1] + "-" + vals[2] + ")");
dateLabel.setHeight(20);
vLayout.addMember(dateLabel);
@@ -239,9 +227,9 @@
String d = "";
for (final ListGridRecord element : lgr) {
final Record r = element;
- d += r.getAttribute("vegzone") + VegetationzonesTablePanel.TABLE_CELL_SEPARATOR + r.getAttribute("from")
- + VegetationzonesTablePanel.TABLE_CELL_SEPARATOR + r.getAttribute("to");
- d += VegetationzonesTablePanel.TABLE_ROW_SEPARATOR;
+ d += r.getAttribute("vegzone") + AbstractVegZonesTablePanel.TABLE_CELL_SEPARATOR + r.getAttribute("from")
+ + AbstractVegZonesTablePanel.TABLE_CELL_SEPARATOR + r.getAttribute("to");
+ d += AbstractVegZonesTablePanel.TABLE_ROW_SEPARATOR;
}
final DataItem item = new DefaultDataItem(datakey, null, d); // DATA-key
@@ -274,5 +262,4 @@
}
return null;
}
-
-}
+}
\ No newline at end of file
diff -r ffd4e2b0381c -r 41f4bc83aa7a gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java Tue May 29 11:38:13 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java Tue May 29 15:19:03 2018 +0200
@@ -11,30 +11,34 @@
import org.dive4elements.river.client.client.ui.PanelHelper;
import org.dive4elements.river.client.shared.model.DataList;
-import com.google.gwt.core.client.GWT;
-import com.smartgwt.client.types.ListGridFieldType;
+import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.Button;
-import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
-import com.smartgwt.client.widgets.form.validator.IsIntegerValidator;
-import com.smartgwt.client.widgets.form.validator.IsStringValidator;
-import com.smartgwt.client.widgets.grid.ListGridField;
+import com.smartgwt.client.widgets.form.fields.TextItem;
+import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridRecord;
-import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
-import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
import com.smartgwt.client.widgets.layout.HLayout;
+import com.smartgwt.client.widgets.layout.Layout;
public class VegetationzonesTableEditPanel extends AbstractVegZonesTablePanel {
private static final long serialVersionUID = 1L;
+ private TextItem vegzone;
+
+ private TextItem start;
+
+ private TextItem end;
+
@Override
- public Canvas createWidget(final DataList data) {
- super.createTable(data, 450);
- this.vegzone = PanelHelper.createItem("uinfo_vegetation_zone_label", this.MSG.uinfo_vegetation_zone_label(), 200, new IsStringValidator());
- this.start = PanelHelper.createItem("uinfo_vegetation_zones_from", this.MSG.uinfo_vegetation_zones_from(), 40, new IsIntegerValidator());
- this.end = PanelHelper.createItem("uinfo_vegetation_zones_to", this.MSG.uinfo_vegetation_zones_to(), 40, new IsIntegerValidator());
+ public void createWidget(final Layout root, final DataList data) {
+
+ final ListGrid elements = super.createTable(root, data, 450, true);
+
+ this.vegzone = PanelHelper.createItem("uinfo_vegetation_zone_label", this.MSG.uinfo_vegetation_zone_label(), 200);
+ this.start = PanelHelper.createIntegerItem("uinfo_vegetation_zones_from", this.MSG.uinfo_vegetation_zones_from(), 40);
+ this.end = PanelHelper.createIntegerItem("uinfo_vegetation_zones_to", this.MSG.uinfo_vegetation_zones_to(), 40);
final HLayout fields = new HLayout();
final HLayout fields2 = new HLayout();
@@ -53,16 +57,9 @@
final String v1 = VegetationzonesTableEditPanel.this.start.getValueAsString();
final String v2 = VegetationzonesTableEditPanel.this.end.getValueAsString();
final String v3 = VegetationzonesTableEditPanel.this.vegzone.getValueAsString();
- if (v1 == null || v2 == null || v3 == null) {
- return;
- }
- try {
- final double test = Double.valueOf(v1);
- final double test2 = Double.valueOf(v2);
- // TODO: MAKE MESSAGE, Apply Format (1.000,00)
- }
- catch (final Exception e) {
- e.printStackTrace();
+ final String message = validate(v1, v2, v3);
+ if (message != null) {
+ SC.warn(message);
return;
}
@@ -70,46 +67,42 @@
r.setAttribute("vegzone", v3);
r.setAttribute("from", v1);
r.setAttribute("to", v2);
- VegetationzonesTableEditPanel.this.elements.addData(r);
+ elements.addData(r);
}
});
- final ListGridField removeField = new ListGridField("_removeRecord", "Remove Record") {
- {
- setType(ListGridFieldType.ICON);
- setIcon(GWT.getHostPageBaseURL() + VegetationzonesTableEditPanel.this.MSG.removeFeature());
- setCanEdit(false);
- setCanFilter(false);
- setCanSort(false);
- setCanGroupBy(false);
- setCanFreeze(false);
- setWidth(25);
- }
- };
-
- this.elements.addRecordClickHandler(new RecordClickHandler() {
- @Override
- public void onRecordClick(final RecordClickEvent event) {
- // Just handle remove-clicks
- if (!event.getField().getName().equals(removeField.getName())) {
- return;
- }
- event.getViewer().removeData(event.getRecord());
- }
- });
-
- this.elements.setFields(super.vegzoneField, super.fromField, super.toField, removeField);
-
fields.addMember(form1);
fields2.addMember(form2);
- this.root.addMember(fields);
- this.root.addMember(fields2);
- this.root.addMember(PanelHelper.getSpacer(10));
- this.root.addMember(add);
- this.root.addMember(PanelHelper.getSpacer(20));
-
- return this.root;
+ root.addMember(fields);
+ root.addMember(fields2);
+ root.addMember(PanelHelper.getSpacer(10));
+ root.addMember(add);
+ root.addMember(PanelHelper.getSpacer(20));
}
-}
+ protected String validate(final String v1, final String v2, final String v3) {
+
+ if (v1 == null || v2 == null || v3 == null || v1.trim().isEmpty() || v2.trim().isEmpty() || v3.trim().isEmpty())
+ return this.MSG.uinfo_vegetation_zones_validation_empty();
+
+ try {
+ final Integer from = Integer.valueOf(v1);
+ final Integer to = Integer.valueOf(v2);
+
+ if (from < 0 || from > 365)
+ return this.MSG.uinfo_vegetation_zones_validation_range();
+
+ if (to < 0 || to > 365)
+ return this.MSG.uinfo_vegetation_zones_validation_range();
+
+ if (from > to)
+ return this.MSG.uinfo_vegetation_zones_validation_from_greater_to();
+
+ return null;
+ }
+ catch (final NumberFormatException e) {
+ return this.MSG.uinfo_vegetation_zones_invalid_integer();
+ }
+ }
+}
\ No newline at end of file
diff -r ffd4e2b0381c -r 41f4bc83aa7a gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTablePanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTablePanel.java Tue May 29 11:38:13 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTablePanel.java Tue May 29 15:19:03 2018 +0200
@@ -10,17 +10,17 @@
import org.dive4elements.river.client.shared.model.DataList;
-import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.layout.Layout;
public class VegetationzonesTablePanel extends AbstractVegZonesTablePanel {
private static final long serialVersionUID = 1L;
@Override
- public Canvas createWidget(final DataList data) {
+ public void createWidget(final Layout root, final DataList data) {
- createTable(data, 420);
- this.elements.setFields(this.vegzoneField, this.fromField, this.toField);
- return this.root;
+ createTable(root, data, 420, false);
+
+ // fetchSedimentLoadData(); //TODO: feed from database...
}
}
More information about the Dive4Elements-commits
mailing list