Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/GaugeTimeRangePanel.java @ 4132:f6c73ee1b7f1
#543 Validate date range in client gauge time range selection state.
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 15 Oct 2012 09:29:25 +0200 |
parents | 0cc2c3d89a9d |
children | c722c08cf502 |
comparison
equal
deleted
inserted
replaced
4115:0cc2c3d89a9d | 4132:f6c73ee1b7f1 |
---|---|
41 | 41 |
42 protected ListGrid yearTable; | 42 protected ListGrid yearTable; |
43 | 43 |
44 protected DateRangeItem dateRange; | 44 protected DateRangeItem dateRange; |
45 | 45 |
46 protected Long maxUpper; | |
47 protected Long maxLower; | |
48 | |
49 | |
46 public GaugeTimeRangePanel() { | 50 public GaugeTimeRangePanel() { |
47 GWT.log("Creating YearInputPanel"); | 51 GWT.log("Creating YearInputPanel"); |
48 yearTable = new ListGrid(); | 52 yearTable = new ListGrid(); |
49 yearTable.setAutoFetchData(true); | 53 yearTable.setAutoFetchData(true); |
50 yearTable.setShowHeaderContextMenu(false); | 54 yearTable.setShowHeaderContextMenu(false); |
51 } | 55 } |
52 | 56 |
57 protected void setMaxUpper(DataList dataList) { | |
58 LongRangeData range = (LongRangeData) dataList.get(0); | |
59 setMaxUpper((Long) range.getUpper()); | |
60 } | |
61 | |
62 protected void setMaxUpper(Long maxUpper) { | |
63 this.maxUpper = maxUpper; | |
64 } | |
65 | |
66 protected void setMaxLower(DataList dataList) { | |
67 LongRangeData range = (LongRangeData) dataList.get(0); | |
68 setMaxLower((Long) range.getLower()); | |
69 } | |
70 | |
71 protected void setMaxLower(Long maxLower) { | |
72 this.maxLower = maxLower; | |
73 } | |
74 | |
75 | |
53 public Canvas create(DataList data) { | 76 public Canvas create(DataList data) { |
54 setDataName(data); | 77 setDataName(data); |
55 | 78 |
56 VLayout root = new VLayout(); | 79 VLayout root = new VLayout(); |
57 | 80 |
69 Config config = Config.getInstance(); | 92 Config config = Config.getInstance(); |
70 String url = config.getServerUrl(); | 93 String url = config.getServerUrl(); |
71 yearTable.setDataSource(new DischargeInfoDataSource(url, gauge)); | 94 yearTable.setDataSource(new DischargeInfoDataSource(url, gauge)); |
72 | 95 |
73 helperContainer.addMember(yearTable); | 96 helperContainer.addMember(yearTable); |
97 | |
98 setMaxUpper(data); | |
99 setMaxLower(data); | |
100 | |
74 return root; | 101 return root; |
75 } | 102 } |
76 | 103 |
77 | 104 |
78 @Override | 105 @Override |
88 @Override | 115 @Override |
89 public Canvas createOld(DataList dataList) { | 116 public Canvas createOld(DataList dataList) { |
90 GWT.log("create old date."); | 117 GWT.log("create old date."); |
91 Data data = dataList.get(0); | 118 Data data = dataList.get(0); |
92 DataItem[] items = data.getItems(); | 119 DataItem[] items = data.getItems(); |
93 GWT.log(data.getClass().toString()); | 120 |
94 HLayout layout = new HLayout(); | 121 HLayout layout = new HLayout(); |
95 | 122 |
96 Label label = new Label(dataList.getLabel()); | 123 Label label = new Label(dataList.getLabel()); |
97 label.setWidth(200); | 124 label.setWidth(200); |
98 label.setHeight(20); | 125 label.setHeight(20); |
136 } | 163 } |
137 | 164 |
138 | 165 |
139 @Override | 166 @Override |
140 public Object getMaxLower() { | 167 public Object getMaxLower() { |
141 Date d = dateRange.getFromDate(); | 168 return maxLower; |
142 return new Long(d.getTime()); | |
143 } | 169 } |
144 | 170 |
145 | 171 |
146 protected long getLowerAsLong() { | 172 protected long getLowerAsLong() { |
147 Date d = dateRange.getFromDate(); | 173 Date d = dateRange.getFromDate(); |
318 | 344 |
319 | 345 |
320 @Override | 346 @Override |
321 public List<String> validate() { | 347 public List<String> validate() { |
322 List<String> errors = new ArrayList<String>(); | 348 List<String> errors = new ArrayList<String>(); |
323 if (dateRange.getFromDate() == null || | 349 |
324 dateRange.getToDate() == null || | 350 Date from = dateRange.getFromDate(); |
325 !dateRange.getFromDate().before(dateRange.getToDate())) | 351 Date to = dateRange.getToDate(); |
326 { | 352 |
353 if (from == null || to == null) { | |
327 String msg = MSG.error_validate_date_range(); | 354 String msg = MSG.error_validate_date_range(); |
328 errors.add(msg); | 355 errors.add(msg); |
329 } | 356 } |
357 | |
358 long maxLow = (Long) getMaxLower(); | |
359 long maxUpper = (Long) getMaxUpper(); | |
360 long inLow = from.getTime(); | |
361 long inUpper = to.getTime(); | |
362 | |
363 if (inLow < maxLow) { | |
364 errors.add(MSG.error_validate_date_range_invalid()); | |
365 } | |
366 else if (inUpper > maxUpper) { | |
367 errors.add(MSG.error_validate_date_range_invalid()); | |
368 } | |
369 else if (inLow > inUpper) { | |
370 errors.add(MSG.error_validate_date_range_invalid()); | |
371 } | |
372 | |
330 return errors; | 373 return errors; |
331 } | 374 } |
332 } | 375 } |