Mercurial > dive4elements > river
comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/fixation/FixLocationPanel.java @ 9099:850ce16034e9
2.3.4.1.10 Berechnung mit Start-km > End-km
author | gernotbelger |
---|---|
date | Mon, 28 May 2018 13:22:45 +0200 |
parents | 5e38e2924c07 |
children | 6c24c857ccf9 |
comparison
equal
deleted
inserted
replaced
9098:32dd7e761e4e | 9099:850ce16034e9 |
---|---|
6 * documentation coming with Dive4Elements River for details. | 6 * documentation coming with Dive4Elements River for details. |
7 */ | 7 */ |
8 | 8 |
9 package org.dive4elements.river.client.client.ui.fixation; | 9 package org.dive4elements.river.client.client.ui.fixation; |
10 | 10 |
11 import java.util.ArrayList; | |
11 import java.util.List; | 12 import java.util.List; |
12 import java.util.ArrayList; | |
13 | |
14 import com.google.gwt.core.client.GWT; | |
15 | |
16 import com.smartgwt.client.widgets.Canvas; | |
17 import com.smartgwt.client.widgets.Label; | |
18 | |
19 import com.smartgwt.client.widgets.layout.HLayout; | |
20 import com.smartgwt.client.widgets.layout.VLayout; | |
21 | |
22 import com.smartgwt.client.widgets.form.fields.FormItem; | |
23 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; | |
24 import com.smartgwt.client.widgets.form.fields.events.BlurEvent; | |
25 | 13 |
26 import org.dive4elements.river.client.client.FLYSConstants; | 14 import org.dive4elements.river.client.client.FLYSConstants; |
27 import org.dive4elements.river.client.client.ui.DoubleRangePanel; | 15 import org.dive4elements.river.client.client.ui.DoubleRangePanel; |
28 | |
29 import org.dive4elements.river.client.shared.model.Data; | 16 import org.dive4elements.river.client.shared.model.Data; |
30 import org.dive4elements.river.client.shared.model.DataItem; | 17 import org.dive4elements.river.client.shared.model.DataItem; |
31 import org.dive4elements.river.client.shared.model.DataList; | 18 import org.dive4elements.river.client.shared.model.DataList; |
32 import org.dive4elements.river.client.shared.model.DefaultData; | 19 import org.dive4elements.river.client.shared.model.DefaultData; |
33 import org.dive4elements.river.client.shared.model.DefaultDataItem; | 20 import org.dive4elements.river.client.shared.model.DefaultDataItem; |
21 | |
22 import com.google.gwt.core.client.GWT; | |
23 import com.smartgwt.client.widgets.Canvas; | |
24 import com.smartgwt.client.widgets.Label; | |
25 import com.smartgwt.client.widgets.form.fields.FormItem; | |
26 import com.smartgwt.client.widgets.form.fields.events.BlurEvent; | |
27 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; | |
28 import com.smartgwt.client.widgets.layout.HLayout; | |
29 import com.smartgwt.client.widgets.layout.VLayout; | |
30 | |
34 /** | 31 /** |
35 * This UIProvider creates a panel for location or distance input. | 32 * This UIProvider creates a panel for location or distance input. |
36 * | 33 * |
37 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> | 34 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> |
38 */ | 35 */ |
39 public class FixLocationPanel | 36 public class FixLocationPanel extends FixationPanel implements BlurHandler { |
40 extends FixationPanel | |
41 implements BlurHandler | |
42 { | |
43 /** The message class that provides i18n strings. */ | 37 /** The message class that provides i18n strings. */ |
44 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class); | 38 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class); |
45 | 39 |
46 /** The constant name of the input field to enter locations.*/ | 40 /** The constant name of the input field to enter locations. */ |
47 public static final String FIELD_VALUE_LOCATION = "location"; | 41 public static final String FIELD_VALUE_LOCATION = "location"; |
48 | 42 |
49 /** The constant name of the input field to enter distance.*/ | 43 /** The constant name of the input field to enter distance. */ |
50 public static final String FIELD_VALUE_DISTANCE = "distance"; | 44 public static final String FIELD_VALUE_DISTANCE = "distance"; |
51 | 45 |
52 DoubleRangePanel inputPanel; | 46 DoubleRangePanel inputPanel; |
53 | 47 |
54 double from; | 48 double from; |
55 double to; | 49 double to; |
56 double step; | 50 double step; |
57 | 51 |
58 public FixLocationPanel() { | 52 public FixLocationPanel() { |
59 htmlOverview = ""; | 53 this.htmlOverview = ""; |
60 } | 54 } |
61 | 55 |
62 public Canvas createWidget(DataList data) { | 56 @Override |
57 public Canvas createWidget(final DataList data) { | |
63 instances.put(this.artifact.getUuid(), this); | 58 instances.put(this.artifact.getUuid(), this); |
64 | 59 |
65 VLayout layout = new VLayout(); | 60 final VLayout layout = new VLayout(); |
66 | 61 |
67 Canvas title = new Label(MESSAGES.distance()); | 62 final Canvas title = new Label(this.MESSAGES.distance()); |
68 title.setHeight("25px"); | 63 title.setHeight("25px"); |
69 | 64 |
70 inputPanel = new DoubleRangePanel( | 65 this.inputPanel = new DoubleRangePanel(this.MESSAGES.unitFrom(), this.MESSAGES.unitTo(), this.MESSAGES.unitWidth(), 0d, 0d, 0d, 240, this); |
71 MESSAGES.unitFrom(), | |
72 MESSAGES.unitTo(), | |
73 MESSAGES.unitWidth(), | |
74 0d, | |
75 0d, | |
76 0d, | |
77 240, | |
78 this); | |
79 | 66 |
80 layout.addMember(title); | 67 layout.addMember(title); |
81 layout.addMember(inputPanel); | 68 layout.addMember(this.inputPanel); |
82 return layout; | 69 return layout; |
83 } | 70 } |
84 | 71 |
85 @Override | 72 @Override |
86 public Canvas createOld(DataList dataList) { | 73 public Canvas createOld(final DataList dataList) { |
87 List<Data> items = dataList.getAll(); | 74 final List<Data> items = dataList.getAll(); |
88 | 75 |
89 Data f = getData(items, "ld_from"); | 76 final Data f = getData(items, "ld_from"); |
90 Data t = getData(items, "ld_to"); | 77 final Data t = getData(items, "ld_to"); |
91 Data s = getData(items, "ld_step"); | 78 final Data s = getData(items, "ld_step"); |
92 DataItem[] fItems = f.getItems(); | 79 final DataItem[] fItems = f.getItems(); |
93 DataItem[] tItems = t.getItems(); | 80 final DataItem[] tItems = t.getItems(); |
94 DataItem[] sItems = s.getItems(); | 81 final DataItem[] sItems = s.getItems(); |
95 | 82 |
96 StringBuilder sb = new StringBuilder(); | 83 final StringBuilder sb = new StringBuilder(); |
97 sb.append(fItems[0].getLabel()); | 84 sb.append(fItems[0].getLabel()); |
98 sb.append(" " + MESSAGES.unitFrom() + " "); | 85 sb.append(" " + this.MESSAGES.unitFrom() + " "); |
99 sb.append(tItems[0].getLabel()); | 86 sb.append(tItems[0].getLabel()); |
100 sb.append(" " + MESSAGES.unitTo() + " "); | 87 sb.append(" " + this.MESSAGES.unitTo() + " "); |
101 sb.append(sItems[0].getLabel()); | 88 sb.append(sItems[0].getLabel()); |
102 sb.append(" " + MESSAGES.unitWidth()); | 89 sb.append(" " + this.MESSAGES.unitWidth()); |
103 | 90 |
104 Label old = new Label(sb.toString()); | 91 final Label old = new Label(sb.toString()); |
105 old.setWidth(130); | 92 old.setWidth(130); |
106 | 93 |
107 HLayout layout = new HLayout(); | 94 final HLayout layout = new HLayout(); |
108 layout.setWidth("400px"); | 95 layout.setWidth("400px"); |
109 | 96 |
110 Label label = new Label(dataList.getLabel()); | 97 final Label label = new Label(dataList.getLabel()); |
111 label.setWidth("200px"); | 98 label.setWidth("200px"); |
112 | 99 |
113 Canvas back = getBackButton(dataList.getState()); | 100 final Canvas back = getBackButton(dataList.getState()); |
114 | 101 |
115 layout.addMember(label); | 102 layout.addMember(label); |
116 layout.addMember(old); | 103 layout.addMember(old); |
117 layout.addMember(back); | 104 layout.addMember(back); |
118 | 105 |
119 return layout; | 106 return layout; |
120 } | 107 } |
121 | 108 |
122 | |
123 /** | 109 /** |
124 * This method returns the selected data. | 110 * This method returns the selected data. |
125 * | 111 * |
126 * @return the selected/inserted data. | 112 * @return the selected/inserted data. |
127 */ | 113 */ |
114 @Override | |
128 public Data[] getData() { | 115 public Data[] getData() { |
129 List<Data> data = new ArrayList<Data>(); | 116 final List<Data> data = new ArrayList<Data>(); |
130 | 117 |
131 boolean valid = saveRangeValues(inputPanel); | 118 final boolean valid = saveRangeValues(this.inputPanel); |
132 if (valid) { | 119 if (valid) { |
133 String f = Double.valueOf(this.from).toString(); | 120 final String f = Double.valueOf(this.from).toString(); |
134 String t = Double.valueOf(this.to).toString(); | 121 final String t = Double.valueOf(this.to).toString(); |
135 String s = Double.valueOf(this.step).toString(); | 122 final String s = Double.valueOf(this.step).toString(); |
136 DataItem fi = new DefaultDataItem("ld_from", "ld_from", f); | 123 final DataItem fi = new DefaultDataItem("ld_from", "ld_from", f); |
137 DataItem ti = new DefaultDataItem("ld_to", "ld_to", t); | 124 final DataItem ti = new DefaultDataItem("ld_to", "ld_to", t); |
138 DataItem si = new DefaultDataItem("ld_step", "ld_step", s); | 125 final DataItem si = new DefaultDataItem("ld_step", "ld_step", s); |
139 data.add(new DefaultData( | 126 data.add(new DefaultData("ld_from", null, null, new DataItem[] { fi })); |
140 "ld_from", null, null, new DataItem[]{ fi })); | 127 data.add(new DefaultData("ld_to", null, null, new DataItem[] { ti })); |
141 data.add(new DefaultData( | 128 data.add(new DefaultData("ld_step", null, null, new DataItem[] { si })); |
142 "ld_to", null, null, new DataItem[]{ ti })); | |
143 data.add(new DefaultData( | |
144 "ld_step", null, null, new DataItem[]{ si })); | |
145 } | 129 } |
146 // what else? | 130 // what else? |
147 return data.toArray(new Data[data.size()]); | 131 return data.toArray(new Data[data.size()]); |
148 } | 132 } |
149 | 133 |
134 protected boolean saveRangeValues(final DoubleRangePanel p) { | |
135 final FormItem[] items = p.getFields(); | |
136 final boolean valid = p.validateForm(); | |
150 | 137 |
151 protected boolean saveRangeValues(DoubleRangePanel p) { | 138 if (valid) { |
152 FormItem[] items = p.getFields(); | |
153 boolean valid = p.validateForm(); | |
154 | |
155 if(valid) { | |
156 this.from = p.getFrom(); | 139 this.from = p.getFrom(); |
157 this.to = p.getTo(); | 140 this.to = p.getTo(); |
158 this.step = p.getStep(); | 141 this.step = p.getStep(); |
159 } | 142 } |
160 return valid; | 143 return valid; |
161 } | 144 } |
162 | 145 |
163 | |
164 @Override | 146 @Override |
165 public void setValues(String cid, boolean checked) { | 147 public void setValues(final String cid, final boolean checked) { |
166 // No user interaction, do nothing. | 148 // No user interaction, do nothing. |
167 } | 149 } |
168 | |
169 | 150 |
170 @Override | 151 @Override |
171 public boolean renderCheckboxes() { | 152 public boolean renderCheckboxes() { |
172 // No selection, return false. | 153 // No selection, return false. |
173 return false; | 154 return false; |
174 } | 155 } |
175 | 156 |
176 | 157 @Override |
177 public void success() { | 158 public void success() { |
178 inputPanel.setValues(fixInfo.getFrom(), fixInfo.getTo(), 100d); | 159 this.inputPanel.setValues(this.fixInfo.getLowerKm(), // TODO: check if revert makes sense |
160 this.fixInfo.getUpperKm(), 100d); | |
179 } | 161 } |
180 | 162 |
181 /** | 163 /** |
182 * This method is used to validate the inserted data in the form fields. | 164 * This method is used to validate the inserted data in the form fields. |
183 * | 165 * |
184 * @param event The BlurEvent that gives information about the FormItem that | 166 * @param event |
185 * has been modified and its value. | 167 * The BlurEvent that gives information about the FormItem that |
168 * has been modified and its value. | |
186 */ | 169 */ |
187 public void onBlur(BlurEvent event) { | 170 @Override |
188 FormItem item = event.getItem(); | 171 public void onBlur(final BlurEvent event) { |
189 String field = item.getFieldName(); | 172 final FormItem item = event.getItem(); |
173 final String field = item.getFieldName(); | |
190 | 174 |
191 if (field == null) { | 175 if (field == null) { |
192 return; | 176 return; |
193 } | 177 } |
194 DoubleRangePanel p = (DoubleRangePanel) event.getForm(); | 178 final DoubleRangePanel p = (DoubleRangePanel) event.getForm(); |
195 } | 179 } |
196 | 180 |
197 | 181 public void dumpGWT(final String cid) { |
198 public void dumpGWT(String cid) { | |
199 GWT.log("Setting values for cId: " + cid); | 182 GWT.log("Setting values for cId: " + cid); |
200 GWT.log("River: " + fixInfo.getRiver()); | 183 GWT.log("River: " + this.fixInfo.getRiver()); |
201 GWT.log("Date: " + fixInfo.getEventByCId(cid).getDate()); | 184 GWT.log("Date: " + this.fixInfo.getEventByCId(cid).getDate()); |
202 GWT.log("Name: " + fixInfo.getEventByCId(cid).getDescription()); | 185 GWT.log("Name: " + this.fixInfo.getEventByCId(cid).getDescription()); |
203 } | 186 } |
204 } | 187 } |