[PATCH] sortable table veg'zones
Wald Commits
scm-commit at wald.intevation.org
Mon Jun 4 11:25:35 CEST 2018
# HG changeset patch
# User gernotbelger
# Date 1528104329 -7200
# Node ID 31b3cae5de0d0c5811ff11068a8a953ffb03dc6f
# Parent bfc0da2aa3aa31954cf836861de22264d6746e4b
sortable table veg'zones
diff -r bfc0da2aa3aa -r 31b3cae5de0d 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 Mon Jun 04 08:50:18 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/AbstractVegZonesTablePanel.java Mon Jun 04 11:25:29 2018 +0200
@@ -30,6 +30,7 @@
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.SortNormalizer;
import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
import com.smartgwt.client.widgets.layout.HLayout;
@@ -63,20 +64,32 @@
this.elements.setHeight(300); //
this.elements.setShowHeaderContextMenu(false);
this.elements.setCanReorderFields(false);
- this.elements.setCanSort(false);
+ // this.elements.setCanSort(true);
+
this.elements.setCanEdit(editable);
final ListGridField vegzoneField = new ListGridField("vegzone", this.MSG.uinfo_vegetation_zones_label());
vegzoneField.setType(ListGridFieldType.TEXT);
vegzoneField.setWidth(245);
+ final SortNormalizer normalizer = new SortNormalizer() {
- final ListGridField fromField = new ListGridField("from", this.MSG.uinfo_vegetation_zones_from());
- fromField.setType(ListGridFieldType.INTEGER);
+ @Override
+ public Object normalize(final ListGridRecord record, final String fieldName) {
+ final String number = record.getAttribute(fieldName);
+ // String.format("%03d", number);// format.format(Integer.valueOf(number)); funktioniert hier leider nicht
+ final String numberFormat = "000" + number;
+ return numberFormat.substring(numberFormat.length() - 3);
+ }
+ };
final IntegerRangeValidator validator = new IntegerRangeValidator();
validator.setMin(0);
validator.setMax(365);
validator.setErrorMessage(this.MSG.uinfo_vegetation_zones_validation_range());
+ final ListGridField fromField = new ListGridField("from", this.MSG.uinfo_vegetation_zones_from());
+ fromField.setType(ListGridFieldType.INTEGER);
+ fromField.setCanSort(true);
+ fromField.setSortNormalizer(normalizer);
fromField.setValidators(validator);
fromField.setWidth(80);
fromField.setAlign(Alignment.RIGHT);
@@ -86,8 +99,11 @@
toField.setValidators(validator);
toField.setWidth(80);
toField.setAlign(Alignment.RIGHT);
+ toField.setSortNormalizer(normalizer);
- if (editable) {
+ if (editable)
+
+ {
final ListGridField removeField = createRemoveField();
this.elements.setFields(vegzoneField, fromField, toField, removeField);
diff -r bfc0da2aa3aa -r 31b3cae5de0d 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 Mon Jun 04 08:50:18 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java Mon Jun 04 11:25:29 2018 +0200
@@ -66,6 +66,11 @@
r.setAttribute("from", v1);
r.setAttribute("to", v2);
elements.addData(r);
+ final String sortField = elements.getSortField();
+ if (sortField != null) {
+ elements.toggleSort(sortField);
+ elements.toggleSort(sortField); // HACK. has to be. otherwise normalizer won't be called :-(
+ }
}
});
More information about the Dive4Elements-commits
mailing list