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 }

http://dive4elements.wald.intevation.org