comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/SingleLocationPanel.java @ 1567:7e738bc8ed75

Show hit count in filtered input helper tables. flys-client/trunk@3824 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Mon, 30 Jan 2012 13:05:14 +0000
parents 92f81eac034a
children 915ad25f4bb8
comparison
equal deleted inserted replaced
1566:c408074c6409 1567:7e738bc8ed75
13 import com.smartgwt.client.widgets.form.DynamicForm; 13 import com.smartgwt.client.widgets.form.DynamicForm;
14 import com.smartgwt.client.widgets.form.fields.events.BlurHandler; 14 import com.smartgwt.client.widgets.form.fields.events.BlurHandler;
15 import com.smartgwt.client.widgets.form.fields.events.BlurEvent; 15 import com.smartgwt.client.widgets.form.fields.events.BlurEvent;
16 import com.smartgwt.client.widgets.form.fields.FormItem; 16 import com.smartgwt.client.widgets.form.fields.FormItem;
17 import com.smartgwt.client.widgets.form.fields.SelectItem; 17 import com.smartgwt.client.widgets.form.fields.SelectItem;
18 import com.smartgwt.client.widgets.form.fields.StaticTextItem;
18 import com.smartgwt.client.widgets.form.fields.events.ChangedHandler; 19 import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
19 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent; 20 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
20 21
21 import com.smartgwt.client.widgets.layout.HLayout; 22 import com.smartgwt.client.widgets.layout.HLayout;
22 import com.smartgwt.client.widgets.layout.VLayout; 23 import com.smartgwt.client.widgets.layout.VLayout;
30 31
31 import com.smartgwt.client.data.Criteria; 32 import com.smartgwt.client.data.Criteria;
32 import com.smartgwt.client.data.Criterion; 33 import com.smartgwt.client.data.Criterion;
33 import com.smartgwt.client.data.AdvancedCriteria; 34 import com.smartgwt.client.data.AdvancedCriteria;
34 import com.smartgwt.client.types.OperatorId; 35 import com.smartgwt.client.types.OperatorId;
36 import com.smartgwt.client.types.Alignment;
35 37
36 import com.smartgwt.client.data.Record; 38 import com.smartgwt.client.data.Record;
37 import com.smartgwt.client.types.ListGridFieldType; 39 import com.smartgwt.client.types.ListGridFieldType;
38 40
39 import de.intevation.flys.client.shared.model.Data; 41 import de.intevation.flys.client.shared.model.Data;
88 /** The locations table */ 90 /** The locations table */
89 protected ListGrid locationTable; 91 protected ListGrid locationTable;
90 92
91 /** The table data. */ 93 /** The table data. */
92 protected DistanceInfoObject[] tableData; 94 protected DistanceInfoObject[] tableData;
95
96 protected StaticTextItem filterResultCount;
93 97
94 /** 98 /**
95 * Creates a new LocationDistancePanel instance. 99 * Creates a new LocationDistancePanel instance.
96 */ 100 */
97 public SingleLocationPanel() { 101 public SingleLocationPanel() {
313 317
314 layout.addMember(container); 318 layout.addMember(container);
315 319
316 container.setMembersMargin(30); 320 container.setMembersMargin(30);
317 321
322 filterResultCount = new StaticTextItem(MESSAGES.resultCount());
323 filterResultCount.setTitleAlign(Alignment.LEFT);
324 filterResultCount.setTitleStyle("color: #000");
325
318 final TableFilter filter = new TableFilter(); 326 final TableFilter filter = new TableFilter();
319 filter.setHeight("30px"); 327 filter.setHeight("30px");
320 filter.addFilterHandler(this); 328 filter.addFilterHandler(this);
321 329
322 final RangeTableFilter filterRange = new RangeTableFilter(); 330 final RangeTableFilter filterRange = new RangeTableFilter();
331 public void onChanged(ChangedEvent e) { 339 public void onChanged(ChangedEvent e) {
332 if(e.getValue().toString().equals("range")) { 340 if(e.getValue().toString().equals("range")) {
333 filterRange.setVisible(true); 341 filterRange.setVisible(true);
334 filter.setVisible(false); 342 filter.setVisible(false);
335 filter.clear(); 343 filter.clear();
344 filterResultCount.setValue("");
336 } 345 }
337 else { 346 else {
338 filterRange.setVisible(false); 347 filterRange.setVisible(false);
339 filterRange.clear(); 348 filterRange.clear();
340 filter.setVisible(true); 349 filter.setVisible(true);
350 filterResultCount.setValue("");
341 } 351 }
342 } 352 }
343 }); 353 });
344 354
345 LinkedHashMap<String, String> filterMap = 355 LinkedHashMap<String, String> filterMap =
350 filterCriteria.setValue("description"); 360 filterCriteria.setValue("description");
351 361
352 DynamicForm form = new DynamicForm(); 362 DynamicForm form = new DynamicForm();
353 form.setFields(filterCriteria); 363 form.setFields(filterCriteria);
354 364
365 DynamicForm form2 = new DynamicForm();
366 form2.setFields(filterResultCount);
367
355 HLayout filterLayout = new HLayout(); 368 HLayout filterLayout = new HLayout();
356 filterLayout.addMember(form); 369 filterLayout.addMember(form);
357 filterLayout.addMember(filter); 370 filterLayout.addMember(filter);
358 filterLayout.addMember(filterRange); 371 filterLayout.addMember(filterRange);
359 372
360 helperContainer.addMember(locationTable); 373 helperContainer.addMember(locationTable);
361 helperContainer.addMember(filterLayout); 374 helperContainer.addMember(filterLayout);
375 helperContainer.addMember(form2);
362 createInputPanel(); 376 createInputPanel();
363 return layout; 377 return layout;
364 } 378 }
365 379
366 public void onFilterCriteriaChanged(StringFilterEvent event) { 380 public void onFilterCriteriaChanged(StringFilterEvent event) {
367 String search = event.getFilter(); 381 String search = event.getFilter();
368 382
369 if (search != null && search.length() > 0) { 383 if (search != null && search.length() > 0) {
370 Criteria c = new Criteria("description", search); 384 Criteria c = new Criteria("description", search);
371 locationTable.filterData(c); 385 locationTable.filterData(c);
386 filterResultCount.setValue(locationTable.getRecords().length);
372 } 387 }
373 else { 388 else {
374 // TODO Remove filter 389 // TODO Remove filter
375 } 390 }
376 } 391 }
381 Float to = event.getTo() + 0.001f; 396 Float to = event.getTo() + 0.001f;
382 397
383 Criterion combinedFilter = null; 398 Criterion combinedFilter = null;
384 if (from.equals(Float.NaN) && to.equals(Float.NaN)) { 399 if (from.equals(Float.NaN) && to.equals(Float.NaN)) {
385 locationTable.clearCriteria(); 400 locationTable.clearCriteria();
401 filterResultCount.setValue("");
402 return;
386 } 403 }
387 else if (from.equals(Float.NaN)) { 404 else if (from.equals(Float.NaN)) {
388 combinedFilter = 405 combinedFilter =
389 new Criterion("from", OperatorId.LESS_OR_EQUAL, to); 406 new Criterion("from", OperatorId.LESS_OR_EQUAL, to);
390 } 407 }
398 new Criterion("from", OperatorId.GREATER_OR_EQUAL, from), 415 new Criterion("from", OperatorId.GREATER_OR_EQUAL, from),
399 new Criterion("from", OperatorId.LESS_OR_EQUAL, to) 416 new Criterion("from", OperatorId.LESS_OR_EQUAL, to)
400 }); 417 });
401 } 418 }
402 locationTable.filterData(combinedFilter); 419 locationTable.filterData(combinedFilter);
420 filterResultCount.setValue(locationTable.getRecords().length);
403 } 421 }
404 422
405 423
406 @Override 424 @Override
407 public List<String> validate() { 425 public List<String> validate() {

http://dive4elements.wald.intevation.org