Mercurial > dive4elements > river
comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/VegetationzonesTableEditPanel.java @ 9107:41f4bc83aa7a
vegzones improved
author | gernotbelger |
---|---|
date | Tue, 29 May 2018 15:19:03 +0200 |
parents | 611a523fc42f |
children | f5b55b383ef9 |
comparison
equal
deleted
inserted
replaced
9106:ffd4e2b0381c | 9107:41f4bc83aa7a |
---|---|
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 | 13 |
14 import com.google.gwt.core.client.GWT; | 14 import com.smartgwt.client.util.SC; |
15 import com.smartgwt.client.types.ListGridFieldType; | |
16 import com.smartgwt.client.widgets.Button; | 15 import com.smartgwt.client.widgets.Button; |
17 import com.smartgwt.client.widgets.Canvas; | |
18 import com.smartgwt.client.widgets.events.ClickEvent; | 16 import com.smartgwt.client.widgets.events.ClickEvent; |
19 import com.smartgwt.client.widgets.events.ClickHandler; | 17 import com.smartgwt.client.widgets.events.ClickHandler; |
20 import com.smartgwt.client.widgets.form.DynamicForm; | 18 import com.smartgwt.client.widgets.form.DynamicForm; |
21 import com.smartgwt.client.widgets.form.validator.IsIntegerValidator; | 19 import com.smartgwt.client.widgets.form.fields.TextItem; |
22 import com.smartgwt.client.widgets.form.validator.IsStringValidator; | 20 import com.smartgwt.client.widgets.grid.ListGrid; |
23 import com.smartgwt.client.widgets.grid.ListGridField; | |
24 import com.smartgwt.client.widgets.grid.ListGridRecord; | 21 import com.smartgwt.client.widgets.grid.ListGridRecord; |
25 import com.smartgwt.client.widgets.grid.events.RecordClickEvent; | |
26 import com.smartgwt.client.widgets.grid.events.RecordClickHandler; | |
27 import com.smartgwt.client.widgets.layout.HLayout; | 22 import com.smartgwt.client.widgets.layout.HLayout; |
23 import com.smartgwt.client.widgets.layout.Layout; | |
28 | 24 |
29 public class VegetationzonesTableEditPanel extends AbstractVegZonesTablePanel { | 25 public class VegetationzonesTableEditPanel extends AbstractVegZonesTablePanel { |
30 private static final long serialVersionUID = 1L; | 26 private static final long serialVersionUID = 1L; |
31 | 27 |
28 private TextItem vegzone; | |
29 | |
30 private TextItem start; | |
31 | |
32 private TextItem end; | |
33 | |
32 @Override | 34 @Override |
33 public Canvas createWidget(final DataList data) { | 35 public void createWidget(final Layout root, final DataList data) { |
34 super.createTable(data, 450); | 36 |
35 this.vegzone = PanelHelper.createItem("uinfo_vegetation_zone_label", this.MSG.uinfo_vegetation_zone_label(), 200, new IsStringValidator()); | 37 final ListGrid elements = super.createTable(root, data, 450, true); |
36 this.start = PanelHelper.createItem("uinfo_vegetation_zones_from", this.MSG.uinfo_vegetation_zones_from(), 40, new IsIntegerValidator()); | 38 |
37 this.end = PanelHelper.createItem("uinfo_vegetation_zones_to", this.MSG.uinfo_vegetation_zones_to(), 40, new IsIntegerValidator()); | 39 this.vegzone = PanelHelper.createItem("uinfo_vegetation_zone_label", this.MSG.uinfo_vegetation_zone_label(), 200); |
40 this.start = PanelHelper.createIntegerItem("uinfo_vegetation_zones_from", this.MSG.uinfo_vegetation_zones_from(), 40); | |
41 this.end = PanelHelper.createIntegerItem("uinfo_vegetation_zones_to", this.MSG.uinfo_vegetation_zones_to(), 40); | |
38 final HLayout fields = new HLayout(); | 42 final HLayout fields = new HLayout(); |
39 final HLayout fields2 = new HLayout(); | 43 final HLayout fields2 = new HLayout(); |
40 | 44 |
41 final Button add = new Button(this.MSG.add_date()); // TODO: make key more generic or change to more specific | 45 final Button add = new Button(this.MSG.add_date()); // TODO: make key more generic or change to more specific |
42 | 46 |
51 @Override | 55 @Override |
52 public void onClick(final ClickEvent ce) { | 56 public void onClick(final ClickEvent ce) { |
53 final String v1 = VegetationzonesTableEditPanel.this.start.getValueAsString(); | 57 final String v1 = VegetationzonesTableEditPanel.this.start.getValueAsString(); |
54 final String v2 = VegetationzonesTableEditPanel.this.end.getValueAsString(); | 58 final String v2 = VegetationzonesTableEditPanel.this.end.getValueAsString(); |
55 final String v3 = VegetationzonesTableEditPanel.this.vegzone.getValueAsString(); | 59 final String v3 = VegetationzonesTableEditPanel.this.vegzone.getValueAsString(); |
56 if (v1 == null || v2 == null || v3 == null) { | 60 final String message = validate(v1, v2, v3); |
57 return; | 61 if (message != null) { |
58 } | 62 SC.warn(message); |
59 try { | |
60 final double test = Double.valueOf(v1); | |
61 final double test2 = Double.valueOf(v2); | |
62 // TODO: MAKE MESSAGE, Apply Format (1.000,00) | |
63 } | |
64 catch (final Exception e) { | |
65 e.printStackTrace(); | |
66 return; | 63 return; |
67 } | 64 } |
68 | 65 |
69 final ListGridRecord r = new ListGridRecord(); | 66 final ListGridRecord r = new ListGridRecord(); |
70 r.setAttribute("vegzone", v3); | 67 r.setAttribute("vegzone", v3); |
71 r.setAttribute("from", v1); | 68 r.setAttribute("from", v1); |
72 r.setAttribute("to", v2); | 69 r.setAttribute("to", v2); |
73 VegetationzonesTableEditPanel.this.elements.addData(r); | 70 elements.addData(r); |
74 } | 71 } |
75 }); | 72 }); |
76 | |
77 final ListGridField removeField = new ListGridField("_removeRecord", "Remove Record") { | |
78 { | |
79 setType(ListGridFieldType.ICON); | |
80 setIcon(GWT.getHostPageBaseURL() + VegetationzonesTableEditPanel.this.MSG.removeFeature()); | |
81 setCanEdit(false); | |
82 setCanFilter(false); | |
83 setCanSort(false); | |
84 setCanGroupBy(false); | |
85 setCanFreeze(false); | |
86 setWidth(25); | |
87 } | |
88 }; | |
89 | |
90 this.elements.addRecordClickHandler(new RecordClickHandler() { | |
91 @Override | |
92 public void onRecordClick(final RecordClickEvent event) { | |
93 // Just handle remove-clicks | |
94 if (!event.getField().getName().equals(removeField.getName())) { | |
95 return; | |
96 } | |
97 event.getViewer().removeData(event.getRecord()); | |
98 } | |
99 }); | |
100 | |
101 this.elements.setFields(super.vegzoneField, super.fromField, super.toField, removeField); | |
102 | 73 |
103 fields.addMember(form1); | 74 fields.addMember(form1); |
104 fields2.addMember(form2); | 75 fields2.addMember(form2); |
105 | 76 |
106 this.root.addMember(fields); | 77 root.addMember(fields); |
107 this.root.addMember(fields2); | 78 root.addMember(fields2); |
108 this.root.addMember(PanelHelper.getSpacer(10)); | 79 root.addMember(PanelHelper.getSpacer(10)); |
109 this.root.addMember(add); | 80 root.addMember(add); |
110 this.root.addMember(PanelHelper.getSpacer(20)); | 81 root.addMember(PanelHelper.getSpacer(20)); |
111 | |
112 return this.root; | |
113 } | 82 } |
114 | 83 |
84 protected String validate(final String v1, final String v2, final String v3) { | |
85 | |
86 if (v1 == null || v2 == null || v3 == null || v1.trim().isEmpty() || v2.trim().isEmpty() || v3.trim().isEmpty()) | |
87 return this.MSG.uinfo_vegetation_zones_validation_empty(); | |
88 | |
89 try { | |
90 final Integer from = Integer.valueOf(v1); | |
91 final Integer to = Integer.valueOf(v2); | |
92 | |
93 if (from < 0 || from > 365) | |
94 return this.MSG.uinfo_vegetation_zones_validation_range(); | |
95 | |
96 if (to < 0 || to > 365) | |
97 return this.MSG.uinfo_vegetation_zones_validation_range(); | |
98 | |
99 if (from > to) | |
100 return this.MSG.uinfo_vegetation_zones_validation_from_greater_to(); | |
101 | |
102 return null; | |
103 } | |
104 catch (final NumberFormatException e) { | |
105 return this.MSG.uinfo_vegetation_zones_invalid_integer(); | |
106 } | |
107 } | |
115 } | 108 } |