comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java @ 9523:d421c2bf0195

Allow to edit colors in vegetation zones
author gernotbelger
date Mon, 01 Oct 2018 17:08:50 +0200
parents e2da9c8a7c57
children 8cf2968dd4f9
comparison
equal deleted inserted replaced
9522:23d97d60b889 9523:d421c2bf0195
8 8
9 package org.dive4elements.river.client.client.ui.uinfo; 9 package org.dive4elements.river.client.client.ui.uinfo;
10 10
11 import org.dive4elements.river.client.client.ui.PanelHelper; 11 import org.dive4elements.river.client.client.ui.PanelHelper;
12 import org.dive4elements.river.client.shared.model.DataList; 12 import org.dive4elements.river.client.shared.model.DataList;
13 import org.dive4elements.river.client.shared.model.VegetationZoneServerClientXChange;
14 13
15 import com.google.gwt.event.dom.client.ClickEvent; 14 import com.google.gwt.event.dom.client.ClickEvent;
16 import com.google.gwt.event.dom.client.ClickHandler; 15 import com.google.gwt.event.dom.client.ClickHandler;
17 import com.google.gwt.user.client.ui.Button; 16 import com.google.gwt.user.client.ui.Button;
18 import com.smartgwt.client.util.SC; 17 import com.smartgwt.client.util.SC;
57 final Button add = new Button(this.MSG.add_date()); // TODO: make key more generic or change to more specific 56 final Button add = new Button(this.MSG.add_date()); // TODO: make key more generic or change to more specific
58 57
59 final DynamicForm form1 = new DynamicForm(); 58 final DynamicForm form1 = new DynamicForm();
60 59
61 form1.setNumCols(4); // für Layout untereinander muss 2 eingestellt werden 60 form1.setNumCols(4); // für Layout untereinander muss 2 eingestellt werden
62 if (VegetationZoneServerClientXChange.HAS_COLORS_EDITABLE) 61 form1.setFields(this.vegzone, this.start, this.end, colorPicker);
63 form1.setFields(this.vegzone, this.start, this.end, colorPicker);
64 else
65 form1.setFields(this.vegzone, this.start, this.end);
66 62
67 add.addClickHandler(new ClickHandler() { 63 add.addClickHandler(new ClickHandler() {
68 @Override 64 @Override
69 public void onClick(final ClickEvent ce) { 65 public void onClick(final ClickEvent ce) {
70 final String v1 = VegetationzonesTableEditPanel.this.start.getValueAsString();
71 final String v2 = VegetationzonesTableEditPanel.this.end.getValueAsString();
72 final String v3 = VegetationzonesTableEditPanel.this.vegzone.getValueAsString();
73
74 // REMARK: can't use 'ternary operator' here, becuae gwt (or java 6?) doesnt like it.
75 final String v4;
76 if (VegetationZoneServerClientXChange.HAS_COLORS_EDITABLE)
77 v4 = colorPicker.getValueAsString();
78 else
79 v4 = "#ffffff";
80
81 final String message = validate(v1, v2, v3, v4);
82 if (message != null) {
83 SC.warn(message);
84 return;
85 }
86 66
87 final ListGridRecord r = new ListGridRecord(); 67 handleAddClicked(elements, colorPicker);
88 r.setAttribute("vegzone", v3);
89 r.setAttribute("from", v1);
90 r.setAttribute("to", v2);
91 r.setAttribute("color", v4);
92 elements.addData(r);
93 updateValidationMsgLabel();
94 final String sortField = elements.getSortField();
95 if (sortField != null) {
96 elements.toggleSort(sortField);
97 elements.toggleSort(sortField); // HACK. has to be. otherwise normalizer won't be called :-(
98 }
99 } 68 }
100 }); 69 });
101 70
102 fields.addMember(form1); 71 fields.addMember(form1);
103 root.addMember(fields); 72 root.addMember(fields);
104 root.addMember(PanelHelper.getSpacer(10)); 73 root.addMember(PanelHelper.getSpacer(10));
105 root.addMember(add); 74 root.addMember(add);
106 } 75 }
107 76
77 protected void handleAddClicked(final ListGrid elements, final ColorItem colorPicker) {
78 final String v1 = VegetationzonesTableEditPanel.this.start.getValueAsString();
79 final String v2 = VegetationzonesTableEditPanel.this.end.getValueAsString();
80 final String v3 = VegetationzonesTableEditPanel.this.vegzone.getValueAsString();
81 final String v4 = colorPicker.getValueAsString();
82
83 final String message = validate(v1, v2, v3, v4);
84 if (message != null) {
85 SC.warn(message);
86 return;
87 }
88
89 final ListGridRecord r = new ListGridRecord();
90 r.setAttribute("vegzone", v3);
91 r.setAttribute("from", v1);
92 r.setAttribute("to", v2);
93 r.setAttribute("color", v4);
94 elements.addData(r);
95 updateValidationMsgLabel();
96 final String sortField = elements.getSortField();
97 if (sortField != null) {
98 elements.toggleSort(sortField);
99 elements.toggleSort(sortField); // HACK. has to be. otherwise normalizer won't be called :-(
100 }
101 }
102
108 @Override 103 @Override
109 protected Canvas createHelper(final DataList data) { 104 protected Canvas createHelper(final DataList data) {
110 return null; 105 return null;
111 } 106 }
112
113 } 107 }

http://dive4elements.wald.intevation.org