comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/uinfo/AbstractVegZonesTablePanel.java @ 9299:4a6cc7c6716a

uinfo.inundation_duration veg'zone select
author gernotbelger
date Wed, 25 Jul 2018 14:42:44 +0200
parents b570b6fcc052
children d89976700474
comparison
equal deleted inserted replaced
9298:0b1a51b0c42e 9299:4a6cc7c6716a
106 final ListGridField fromField = VegZonePanelHelper.createIntTableField("from", this.MSG.uinfo_vegetation_zones_from(), true, getNormalizer(), 106 final ListGridField fromField = VegZonePanelHelper.createIntTableField("from", this.MSG.uinfo_vegetation_zones_from(), true, getNormalizer(),
107 getValidator()); 107 getValidator());
108 fromField.addCellSavedHandler(new CellSavedHandler() { 108 fromField.addCellSavedHandler(new CellSavedHandler() {
109 @Override 109 @Override
110 public void onCellSaved(final CellSavedEvent event) { 110 public void onCellSaved(final CellSavedEvent event) {
111 validateRangeOverlap(); 111 updateValidationMsgLabel();
112 } 112 }
113 }); 113 });
114 // war mal ne anforderung, dass sich die Werte anderer Zellen ändern, sodass keine lücken entstehen... mach das jetzt 114 // war mal ne anforderung, dass sich die Werte anderer Zellen ändern, sodass keine lücken entstehen... mach das jetzt
115 // aber über die Validierung. es sei denn, es soll doch wieder erwünscht sein, dass sihc die werte andere Zellen ändern 115 // aber über die Validierung. es sei denn, es soll doch wieder erwünscht sein, dass sihc die werte andere Zellen ändern
116 // fromField.addCellSavedHandler(new CellSavedHandler() { 116 // fromField.addCellSavedHandler(new CellSavedHandler() {
161 final ListGridField toField = VegZonePanelHelper.createIntTableField("to", this.MSG.uinfo_vegetation_zones_to(), false, getNormalizer(), 161 final ListGridField toField = VegZonePanelHelper.createIntTableField("to", this.MSG.uinfo_vegetation_zones_to(), false, getNormalizer(),
162 getValidator()); 162 getValidator());
163 toField.addCellSavedHandler(new CellSavedHandler() { 163 toField.addCellSavedHandler(new CellSavedHandler() {
164 @Override 164 @Override
165 public void onCellSaved(final CellSavedEvent event) { 165 public void onCellSaved(final CellSavedEvent event) {
166 validateRangeOverlap(); 166 updateValidationMsgLabel();
167 } 167 }
168 }); 168 });
169 // nicht 169 // nicht
170 // sortierbar nach 170 // sortierbar nach
171 // "ÜFDauer bis" 171 // "ÜFDauer bis"
190 this.elements.addRecordClickHandler(new RecordClickHandler() { // adding another custom record-Remove-Handler which is not included in the 190 this.elements.addRecordClickHandler(new RecordClickHandler() { // adding another custom record-Remove-Handler which is not included in the
191 // Panelhelper TODO: MERGE WITH SupraRegionalPanel!! 191 // Panelhelper TODO: MERGE WITH SupraRegionalPanel!!
192 @Override 192 @Override
193 public void onRecordClick(final RecordClickEvent event) { 193 public void onRecordClick(final RecordClickEvent event) {
194 if (event.getField().getName().equals(removeField.getName())) { 194 if (event.getField().getName().equals(removeField.getName())) {
195 validateRangeOverlap(); 195 updateValidationMsgLabel();
196 } 196 }
197 } 197 }
198 }); 198 });
199 this.elements.setFields(vegzoneField, fromField, toField, colorField, removeField); 199 this.elements.setFields(vegzoneField, fromField, toField, colorField, removeField);
200 } else { 200 } else {
241 private final void addDataInit(final DataList data) { 241 private final void addDataInit(final DataList data) {
242 for (final Data dataItemContainer : data.getAll()) { 242 for (final Data dataItemContainer : data.getAll()) {
243 if (dataItemContainer.getItems() != null) { 243 if (dataItemContainer.getItems() != null) {
244 for (final DataItem dataItem : dataItemContainer.getItems()) { 244 for (final DataItem dataItem : dataItemContainer.getItems()) {
245 if (dataItem.getStringValue() != null) { 245 if (dataItem.getStringValue() != null) {
246 246 createTableFromDataStr(dataItem.getStringValue());
247 final List<VegetationZone> rows = VegetationZone.parse(dataItem.getStringValue());
248 for (final VegetationZone row : rows) {
249 this.elements.addData(createEntry(row));
250 }
251 } 247 }
252 } 248 }
253 } 249 }
250 }
251 }
252
253 protected final void createTableFromDataStr(final String data) {
254 for (final ListGridRecord r : this.elements.getRecords()) {
255 this.elements.removeData(r);
256 }
257 final List<VegetationZone> rows = VegetationZone.parse(data);
258 for (final VegetationZone row : rows) {
259 this.elements.addData(createEntry(row));
254 } 260 }
255 } 261 }
256 262
257 @Override 263 @Override
258 public final Canvas create(final DataList data) { 264 public final Canvas create(final DataList data) {
259 final VLayout layout = new VLayout(); 265 final VLayout layout = new VLayout();
260 266
261 // TODO: Helper zur Vegetationszonen-Auswahl 267 // TODO: Helper zur Vegetationszonen-Auswahl
262 // final Canvas helper = createHelper(); 268 final Canvas helper = createHelper(data);
263 // this.helperContainer.addMember(helper); 269 if (helper != null)
270 this.helperContainer.addMember(helper);
264 271
265 final Canvas submit = getNextButton(); 272 final Canvas submit = getNextButton();
266 273
267 final VLayout root = new VLayout(); 274 final VLayout root = new VLayout();
268 root.setWidth(450); 275 root.setWidth(450);
269 createWidget(root, data); 276 createWidget(root, data);
270 277
271 layout.addMember(root); 278 layout.addMember(root);
272 layout.addMember(submit); 279 layout.addMember(submit);
273 280
274 validateRangeOverlap();// init Text 281 updateValidationMsgLabel();// init Text
275 282
276 return layout; 283 return layout;
277 } 284 }
278 285
279 @Override 286 @Override
349 this.records.add(r); 356 this.records.add(r);
350 return r; 357 return r;
351 358
352 } 359 }
353 360
354 protected String validate(final String fromInput, final String toInput, final String zoneName, final String hexColor) { 361 protected final String validate(final String fromInput, final String toInput, final String zoneName, final String hexColor) {
355 362
356 if (fromInput == null || toInput == null || zoneName == null || hexColor == null || fromInput.trim().isEmpty() || toInput.trim().isEmpty() 363 if (fromInput == null || toInput == null || zoneName == null || hexColor == null || fromInput.trim().isEmpty() || toInput.trim().isEmpty()
357 || zoneName.trim().isEmpty() || hexColor.trim().isEmpty()) 364 || zoneName.trim().isEmpty() || hexColor.trim().isEmpty())
358 return this.MSG.uinfo_vegetation_zones_validation_empty(); 365 return this.MSG.uinfo_vegetation_zones_validation_empty();
359 366
376 return this.MSG.error_invalid_integer(); 383 return this.MSG.error_invalid_integer();
377 } 384 }
378 } 385 }
379 386
380 @Override 387 @Override
381 public List<String> validate() { 388 public final List<String> validate() {
382 final List<String> errors = new ArrayList<String>(); 389 final List<String> errors = new ArrayList<String>();
383 390
384 if (VegetationZone.zonesAreOverlapping(this.getZones(this.elements.getRecords()))) 391 if (VegetationZone.zonesAreOverlapping(this.getZones(this.elements.getRecords())))
385 errors.add(this.MSG.uinfo_vegetation_zone_overlap()); 392 errors.add(this.MSG.uinfo_vegetation_zone_overlap());
386 if (VegetationZone.hasGaps(this.getZones(this.elements.getRecords()), 0, 365)) 393 if (VegetationZone.hasGaps(this.getZones(this.elements.getRecords()), 0, 365))
387 errors.add(this.MSG.uinfo_vegetation_zone_has_gaps()); 394 errors.add(this.MSG.uinfo_vegetation_zone_has_gaps());
388 return errors; 395 return errors;
389 } 396 }
390 397
391 protected final void validateRangeOverlap() { 398 protected final void updateValidationMsgLabel() {
392 this.validationLabel.setText(validate().toString().replace("[", "").replace("]", "").replace(",", "")); 399 this.validationLabel.setText(validate().toString().replace("[", "").replace("]", "").replace(",", ""));
393 } 400 }
401
402 protected abstract Canvas createHelper(final DataList data);
394 } 403 }

http://dive4elements.wald.intevation.org