[PATCH] Allow to edit colors in vegetation zones
Wald Commits
scm-commit at wald.intevation.org
Mon Oct 1 17:08:44 CEST 2018
# HG changeset patch
# User gernotbelger
# Date 1538406530 -7200
# Node ID d421c2bf0195d8d963b3e406b15d445c7dee077f
# Parent 23d97d60b889117a51726765eda84a0c2cc545d4
Allow to edit colors in vegetation zones
diff -r 23d97d60b889 -r d421c2bf0195 artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZoneServerClientXChange.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZoneServerClientXChange.java Mon Oct 01 16:37:12 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZoneServerClientXChange.java Mon Oct 01 17:08:50 2018 +0200
@@ -26,13 +26,17 @@
public class VegetationZoneServerClientXChange implements Comparable<VegetationZoneServerClientXChange> {
// IMMER ABGLEICHEN MIT VegetationZoneServerClientXChange.class Server und Client
- public static final boolean HAS_COLORS_EDITABLE = false;
private static final String TABLE_CELL_SEPARATOR = "TABLE_CELL_SEPARATOR";
+
private static final String TABLE_ROW_SEPARATOR = "TABLE_ROW_SEPARATOR";
+
private final String zoneName;
+
private final int min_day_overflow;
+
private final int max_day_overflow;
+
private final String hexColor;
public static List<VegetationZoneServerClientXChange> parse(final String zonesRaw) {
@@ -50,14 +54,16 @@
}
for (final String[] zone : results) {
- final VegetationZoneServerClientXChange helper = new VegetationZoneServerClientXChange(zone[0], Integer.valueOf(zone[1]), Integer.valueOf(zone[2]), zone[3]);
+ final VegetationZoneServerClientXChange helper = new VegetationZoneServerClientXChange(zone[0], Integer.valueOf(zone[1]), Integer.valueOf(zone[2]),
+ zone[3]);
resultList.add(helper);
}
return resultList;
}
- public static VegetationZoneServerClientXChange createFromTableEntry(final String zone, final String min_day_overflow, final String max_day_overflow, final String hexColor) {
+ public static VegetationZoneServerClientXChange createFromTableEntry(final String zone, final String min_day_overflow, final String max_day_overflow,
+ final String hexColor) {
return new VegetationZoneServerClientXChange(zone, Integer.valueOf(min_day_overflow), Integer.valueOf(max_day_overflow), hexColor); // Error-Handling?
}
@@ -81,10 +87,12 @@
public String getHexColor() {
try {
- final int test = Integer.decode(this.hexColor);
+ // REMARK: only return valid colors
+ Integer.decode(this.hexColor);
return this.hexColor;
}
catch (final NumberFormatException e) {
+ e.printStackTrace();
return "#ffffff";
}
}
@@ -162,7 +170,7 @@
treeList.addAll(list);
int lowerCompare = lower;
for (final VegetationZoneServerClientXChange zone : treeList) {
- if (zone.getLowerFromTo() > (lowerCompare + 1)) { // nicht inklusiv
+ if (zone.getLowerFromTo() > (lowerCompare)) { // nicht inklusiv
return true;
}
lowerCompare = zone.getUpperFromTo();
@@ -179,12 +187,11 @@
final int upper = getUpperFromTo();
final int lower = getLowerFromTo();
- final int otherSchwerpunkt = (otherLower + otherUpper) / 2;
- if ((otherUpper <= upper && otherUpper >= lower)) {
+ if ((otherUpper <= upper && otherUpper > lower)) {
return true;
- } else if (otherLower >= lower && otherLower <= upper) {
+ } else if (otherLower >= lower && otherLower < upper) {
return true;
- } else if (otherSchwerpunkt >= (lower) && otherSchwerpunkt <= (upper)) {
+ } else if (otherLower == lower && otherUpper == upper) {
return true;
}
return false;
@@ -197,5 +204,4 @@
public Integer getUpperFromTo() {
return this.min_day_overflow > this.max_day_overflow ? this.min_day_overflow : this.max_day_overflow;// Math. is forbidden :-(
}
-
-}
+}
\ No newline at end of file
diff -r 23d97d60b889 -r d421c2bf0195 artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesCalculationResult.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesCalculationResult.java Mon Oct 01 16:37:12 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZonesCalculationResult.java Mon Oct 01 17:08:50 2018 +0200
@@ -25,6 +25,7 @@
* @author Domenico Nardi Tironi
*/
final class VegetationZonesCalculationResult extends AbstractCalculationExportableResult {
+
private static final long serialVersionUID = 1L;
private static final String JASPER_FILE = "/jasper/templates/uinfo.vegetationzones.jrxml";
@@ -41,8 +42,7 @@
header.add(exportContextCSV.formatCsvHeader(UInfoResultType.vegname));
header.add(exportContextCSV.formatCsvHeader(UInfoResultType.vegdauervon));
header.add(exportContextCSV.formatCsvHeader(UInfoResultType.vegdauerbis));
- if (VegetationZoneServerClientXChange.HAS_COLORS_EDITABLE)
- header.add(exportContextCSV.formatCsvHeader(UInfoResultType.vegzone_color));
+ header.add(exportContextCSV.formatCsvHeader(UInfoResultType.vegzone_color));
exportContextCSV.writeCSVLine(header.toArray(new String[header.size()]));
}
@@ -85,9 +85,8 @@
lines.add(context.formatRowValue(row, UInfoResultType.vegname));
lines.add(context.formatRowValue(row, UInfoResultType.vegdauervon));
lines.add(context.formatRowValue(row, UInfoResultType.vegdauerbis));
- if (VegetationZoneServerClientXChange.HAS_COLORS_EDITABLE)
- lines.add(context.formatRowValue(row, UInfoResultType.vegzone_color));
+ lines.add(context.formatRowValue(row, UInfoResultType.vegzone_color));
+
return lines.toArray(new String[lines.size()]);
}
-
}
\ No newline at end of file
diff -r 23d97d60b889 -r d421c2bf0195 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 Oct 01 16:37:12 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/AbstractVegZonesTablePanel.java Mon Oct 01 17:08:50 2018 +0200
@@ -172,7 +172,6 @@
toField.setCanEdit(true);// neue Anforderung - doch nicht?
final ListGridField colorField = new ListGridField("color", this.MSG.uinfo_vegetation_zone_color());
- colorField.setHidden(VegetationZoneServerClientXChange.HAS_COLORS_EDITABLE ? false : true);
final ColorItem item = new ColorItem();
colorField.setEditorProperties(item);
@@ -188,7 +187,7 @@
if (editable) {
final ListGridField removeField = PanelHelper.createRemoveField(this.elements, GWT.getHostPageBaseURL() + this.MSG.removeFeature());
this.elements.addRecordClickHandler(new RecordClickHandler() { // adding another custom record-Remove-Handler which is not included in the
- // Panelhelper TODO: MERGE WITH SupraRegionalPanel!!
+ // Panelhelper TODO: MERGE WITH SupraRegionalPanel!!
@Override
public void onRecordClick(final RecordClickEvent event) {
if (event.getField().getName().equals(removeField.getName())) {
@@ -341,9 +340,9 @@
final Integer from = row.getMin_day_overflow();
final Integer to = row.getMax_day_overflow();
final String colorStr = row.getHexColor();
- if (vegzone == null || from == null || to == null) {
+
+ if (vegzone == null)
return null;
- }
final ListGridRecord r = new ListGridRecord();
r.setAttribute("vegzone", vegzone);
@@ -377,7 +376,7 @@
return null;
}
- catch (final NumberFormatException e) {
+ catch (@SuppressWarnings("unused") final NumberFormatException e) {
return this.MSG.error_invalid_integer();
}
}
diff -r 23d97d60b889 -r d421c2bf0195 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 Oct 01 16:37:12 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java Mon Oct 01 17:08:50 2018 +0200
@@ -10,7 +10,6 @@
import org.dive4elements.river.client.client.ui.PanelHelper;
import org.dive4elements.river.client.shared.model.DataList;
-import org.dive4elements.river.client.shared.model.VegetationZoneServerClientXChange;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
@@ -59,43 +58,13 @@
final DynamicForm form1 = new DynamicForm();
form1.setNumCols(4); // für Layout untereinander muss 2 eingestellt werden
- if (VegetationZoneServerClientXChange.HAS_COLORS_EDITABLE)
- form1.setFields(this.vegzone, this.start, this.end, colorPicker);
- else
- form1.setFields(this.vegzone, this.start, this.end);
+ form1.setFields(this.vegzone, this.start, this.end, colorPicker);
add.addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent ce) {
- final String v1 = VegetationzonesTableEditPanel.this.start.getValueAsString();
- final String v2 = VegetationzonesTableEditPanel.this.end.getValueAsString();
- final String v3 = VegetationzonesTableEditPanel.this.vegzone.getValueAsString();
-
- // REMARK: can't use 'ternary operator' here, becuae gwt (or java 6?) doesnt like it.
- final String v4;
- if (VegetationZoneServerClientXChange.HAS_COLORS_EDITABLE)
- v4 = colorPicker.getValueAsString();
- else
- v4 = "#ffffff";
-
- final String message = validate(v1, v2, v3, v4);
- if (message != null) {
- SC.warn(message);
- return;
- }
- final ListGridRecord r = new ListGridRecord();
- r.setAttribute("vegzone", v3);
- r.setAttribute("from", v1);
- r.setAttribute("to", v2);
- r.setAttribute("color", v4);
- elements.addData(r);
- updateValidationMsgLabel();
- final String sortField = elements.getSortField();
- if (sortField != null) {
- elements.toggleSort(sortField);
- elements.toggleSort(sortField); // HACK. has to be. otherwise normalizer won't be called :-(
- }
+ handleAddClicked(elements, colorPicker);
}
});
@@ -105,9 +74,34 @@
root.addMember(add);
}
+ protected void handleAddClicked(final ListGrid elements, final ColorItem colorPicker) {
+ final String v1 = VegetationzonesTableEditPanel.this.start.getValueAsString();
+ final String v2 = VegetationzonesTableEditPanel.this.end.getValueAsString();
+ final String v3 = VegetationzonesTableEditPanel.this.vegzone.getValueAsString();
+ final String v4 = colorPicker.getValueAsString();
+
+ final String message = validate(v1, v2, v3, v4);
+ if (message != null) {
+ SC.warn(message);
+ return;
+ }
+
+ final ListGridRecord r = new ListGridRecord();
+ r.setAttribute("vegzone", v3);
+ r.setAttribute("from", v1);
+ r.setAttribute("to", v2);
+ r.setAttribute("color", v4);
+ elements.addData(r);
+ updateValidationMsgLabel();
+ final String sortField = elements.getSortField();
+ if (sortField != null) {
+ elements.toggleSort(sortField);
+ elements.toggleSort(sortField); // HACK. has to be. otherwise normalizer won't be called :-(
+ }
+ }
+
@Override
protected Canvas createHelper(final DataList data) {
return null;
}
-
}
\ No newline at end of file
diff -r 23d97d60b889 -r d421c2bf0195 gwt-client/src/main/java/org/dive4elements/river/client/shared/model/VegetationZoneServerClientXChange.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/shared/model/VegetationZoneServerClientXChange.java Mon Oct 01 16:37:12 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/shared/model/VegetationZoneServerClientXChange.java Mon Oct 01 17:08:50 2018 +0200
@@ -7,7 +7,6 @@
* and comes with ABSOLUTELY NO WARRANTY! Check out the
* documentation coming with Dive4Elements River for details.
*/
-
package org.dive4elements.river.client.shared.model;
import java.util.ArrayList;
@@ -21,13 +20,17 @@
public class VegetationZoneServerClientXChange implements Comparable<VegetationZoneServerClientXChange> {
// IMMER ABGLEICHEN MIT VegetationZoneServerClientXChange.class IM SERVER
- public static final boolean HAS_COLORS_EDITABLE = false;
private static final String TABLE_CELL_SEPARATOR = "TABLE_CELL_SEPARATOR";
+
private static final String TABLE_ROW_SEPARATOR = "TABLE_ROW_SEPARATOR";
+
private final String zoneName;
+
private final int min_day_overflow;
+
private final int max_day_overflow;
+
private final String hexColor;
public static List<VegetationZoneServerClientXChange> parse(final String zonesRaw) {
@@ -78,10 +81,12 @@
public String getHexColor() {
try {
- final int test = Integer.decode(this.hexColor);
+ // REMARK: only return valid colors
+ Integer.decode(this.hexColor);
return this.hexColor;
}
catch (final NumberFormatException e) {
+ e.printStackTrace();
return "#ffffff";
}
}
@@ -90,22 +95,6 @@
return this.min_day_overflow;
}
- public static final List<VegetationZoneServerClientXChange> getStandardList() {
-
- final List<VegetationZoneServerClientXChange> list = new ArrayList<VegetationZoneServerClientXChange>();
- list.add(new VegetationZoneServerClientXChange("Zonaler Wald", 0, 5, "#336600"));
- list.add(new VegetationZoneServerClientXChange("Hartholzaue, trocken", 6, 40, "#00cc00"));
- list.add(new VegetationZoneServerClientXChange("Hartholzaue, feucht", 41, 80, "#66ff33"));
- list.add(new VegetationZoneServerClientXChange("Silberweidenwald", 81, 140, "#008080"));
- list.add(new VegetationZoneServerClientXChange("Weidengebüsch", 141, 200, "#33cccc"));
- list.add(new VegetationZoneServerClientXChange("Uferröhricht", 201, 260, "#ffa8ff"));
- list.add(new VegetationZoneServerClientXChange("Uferpioniere", 261, 320, "#ff0000"));
- list.add(new VegetationZoneServerClientXChange("Vegetationslos", 321, 364, "#b2b2b2"));
- list.add(new VegetationZoneServerClientXChange("Wasserfläche", 365, 365, "#0066ff"));
-
- return list;
- }
-
public static final String parseListToDataString(final List<VegetationZoneServerClientXChange> list) {
java.util.Collections.sort(list);
@@ -178,7 +167,6 @@
final int upper = getUpperFromTo();
final int lower = getLowerFromTo();
- // final int otherSchwerpunkt = (otherLower + otherUpper) / 2;
if ((otherUpper <= upper && otherUpper > lower)) {
return true;
} else if (otherLower >= lower && otherLower < upper) {
@@ -196,5 +184,4 @@
public Integer getUpperFromTo() {
return this.min_day_overflow > this.max_day_overflow ? this.min_day_overflow : this.max_day_overflow;// Math. is forbidden :-(
}
-
}
\ No newline at end of file
More information about the Dive4Elements-commits
mailing list