comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/LocationDistancePanel.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 e2f74131ffc1
children 0dad8ab80005
comparison
equal deleted inserted replaced
1566:c408074c6409 1567:7e738bc8ed75
23 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent; 23 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
24 24
25 import com.smartgwt.client.widgets.form.fields.FormItem; 25 import com.smartgwt.client.widgets.form.fields.FormItem;
26 import com.smartgwt.client.widgets.form.fields.SelectItem; 26 import com.smartgwt.client.widgets.form.fields.SelectItem;
27 import com.smartgwt.client.widgets.form.fields.RadioGroupItem; 27 import com.smartgwt.client.widgets.form.fields.RadioGroupItem;
28 import com.smartgwt.client.widgets.form.fields.StaticTextItem;
28 import com.smartgwt.client.widgets.layout.HLayout; 29 import com.smartgwt.client.widgets.layout.HLayout;
29 import com.smartgwt.client.widgets.layout.VLayout; 30 import com.smartgwt.client.widgets.layout.VLayout;
30 import com.smartgwt.client.widgets.grid.ListGrid; 31 import com.smartgwt.client.widgets.grid.ListGrid;
31 import com.smartgwt.client.widgets.grid.ListGridField; 32 import com.smartgwt.client.widgets.grid.ListGridField;
32 import com.smartgwt.client.widgets.grid.ListGridRecord; 33 import com.smartgwt.client.widgets.grid.ListGridRecord;
35 import com.smartgwt.client.widgets.grid.events.RecordClickEvent; 36 import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
36 import com.smartgwt.client.widgets.grid.events.CellClickHandler; 37 import com.smartgwt.client.widgets.grid.events.CellClickHandler;
37 import com.smartgwt.client.widgets.grid.events.CellClickEvent; 38 import com.smartgwt.client.widgets.grid.events.CellClickEvent;
38 import com.smartgwt.client.widgets.tab.events.TabSelectedHandler; 39 import com.smartgwt.client.widgets.tab.events.TabSelectedHandler;
39 import com.smartgwt.client.widgets.tab.events.TabSelectedEvent; 40 import com.smartgwt.client.widgets.tab.events.TabSelectedEvent;
41 import com.smartgwt.client.types.Alignment;
40 42
41 import com.smartgwt.client.widgets.tab.TabSet; 43 import com.smartgwt.client.widgets.tab.TabSet;
42 import com.smartgwt.client.widgets.tab.Tab; 44 import com.smartgwt.client.widgets.tab.Tab;
43 import com.smartgwt.client.data.Record; 45 import com.smartgwt.client.data.Record;
44 46
149 protected TableFilter filterDescription; 151 protected TableFilter filterDescription;
150 protected RangeTableFilter filterRange; 152 protected RangeTableFilter filterRange;
151 153
152 /** The Combobox for table filter criteria. */ 154 /** The Combobox for table filter criteria. */
153 protected SelectItem filterCriteria; 155 protected SelectItem filterCriteria;
154 156 protected StaticTextItem filterResultCount;
157 protected ListGrid currentFiltered;
155 158
156 /** 159 /**
157 * Creates a new LocationDistancePanel instance. 160 * Creates a new LocationDistancePanel instance.
158 */ 161 */
159 public LocationDistancePanel() { 162 public LocationDistancePanel() {
667 670
668 if (theMode.equals(FIELD_VALUE_DISTANCE)) { 671 if (theMode.equals(FIELD_VALUE_DISTANCE)) {
669 enableDistancePanel(); 672 enableDistancePanel();
670 inputTables.selectTab(1); 673 inputTables.selectTab(1);
671 } 674 }
675 currentFiltered = (ListGrid)inputTables.getSelectedTab().getPane();
672 } 676 }
673 677
674 678
675 protected Canvas createWidget(DataList data) { 679 protected Canvas createWidget(DataList data) {
676 VLayout layout = new VLayout(); 680 VLayout layout = new VLayout();
692 inputTables = new TabSet(); 696 inputTables = new TabSet();
693 inputTables.addTabSelectedHandler(new TabSelectedHandler() { 697 inputTables.addTabSelectedHandler(new TabSelectedHandler() {
694 public void onTabSelected(TabSelectedEvent evt) { 698 public void onTabSelected(TabSelectedEvent evt) {
695 filterDescription.clear(); 699 filterDescription.clear();
696 filterRange.clear(); 700 filterRange.clear();
701 filterResultCount.setValue("");
702
703 Canvas c = evt.getTabPane();
704 if(c instanceof ListGrid) {
705 currentFiltered = (ListGrid)c;
706 }
697 } 707 }
698 }); 708 });
699 709
700 Tab locations = new Tab(MESSAGES.locations()); 710 Tab locations = new Tab(MESSAGES.locations());
701 Tab distances = new Tab(MESSAGES.distance()); 711 Tab distances = new Tab(MESSAGES.distance());
706 locations.setPane(locationDistanceTable); 716 locations.setPane(locationDistanceTable);
707 distances.setPane(distanceTable); 717 distances.setPane(distanceTable);
708 718
709 inputTables.addTab(locations); 719 inputTables.addTab(locations);
710 inputTables.addTab(distances); 720 inputTables.addTab(distances);
721
722 filterResultCount = new StaticTextItem(MESSAGES.resultCount());
723 filterResultCount.setTitleAlign(Alignment.LEFT);
724 filterResultCount.setTitleStyle("color: #000");
711 725
712 filterDescription = new TableFilter(); 726 filterDescription = new TableFilter();
713 filterDescription.setHeight("30px"); 727 filterDescription.setHeight("30px");
714 filterDescription.addFilterHandler(this); 728 filterDescription.addFilterHandler(this);
715 729
725 public void onChanged(ChangedEvent e) { 739 public void onChanged(ChangedEvent e) {
726 if(e.getValue().toString().equals("range")) { 740 if(e.getValue().toString().equals("range")) {
727 filterRange.setVisible(true); 741 filterRange.setVisible(true);
728 filterDescription.setVisible(false); 742 filterDescription.setVisible(false);
729 filterDescription.clear(); 743 filterDescription.clear();
744 filterResultCount.setValue("");
730 } 745 }
731 else { 746 else {
732 filterRange.setVisible(false); 747 filterRange.setVisible(false);
733 filterRange.clear(); 748 filterRange.clear();
734 filterDescription.setVisible(true); 749 filterDescription.setVisible(true);
750 filterResultCount.setValue("");
735 } 751 }
736 } 752 }
737 }); 753 });
738 754
739 LinkedHashMap<String, String> filterMap = 755 LinkedHashMap<String, String> filterMap =
743 filterCriteria.setValueMap(filterMap); 759 filterCriteria.setValueMap(filterMap);
744 filterCriteria.setValue("description"); 760 filterCriteria.setValue("description");
745 761
746 DynamicForm form = new DynamicForm(); 762 DynamicForm form = new DynamicForm();
747 form.setFields(filterCriteria); 763 form.setFields(filterCriteria);
748
749 inputTables.setHeight("*"); 764 inputTables.setHeight("*");
765 DynamicForm form2 = new DynamicForm();
766 form2.setFields(filterResultCount);
750 767
751 VLayout helper = new VLayout(); 768 VLayout helper = new VLayout();
752 HLayout filterLayout = new HLayout(); 769 HLayout filterLayout = new HLayout();
753 770
754 filterLayout.addMember(form); 771 filterLayout.addMember(form);
755 filterLayout.addMember(filterDescription); 772 filterLayout.addMember(filterDescription);
756 filterLayout.addMember(filterRange); 773 filterLayout.addMember(filterRange);
757 filterLayout.setHeight("33px"); 774 filterLayout.setHeight("30px");
758 helper.addMember(inputTables); 775 helper.addMember(inputTables);
759 helper.addMember(filterLayout); 776 helper.addMember(filterLayout);
777 helper.addMember(form2);
760 helper.setHeight100(); 778 helper.setHeight100();
761 helper.setWidth100(); 779 helper.setWidth100();
762 780
763 helperContainer.addMember(helper); 781 helperContainer.addMember(helper);
764 filterLayout.setWidth("200"); 782 filterLayout.setWidth("200");
774 Criteria c = new Criteria("description", search); 792 Criteria c = new Criteria("description", search);
775 793
776 locationsTable.filterData(c); 794 locationsTable.filterData(c);
777 distanceTable.filterData(c); 795 distanceTable.filterData(c);
778 locationDistanceTable.filterData(c); 796 locationDistanceTable.filterData(c);
797 filterResultCount.setValue(currentFiltered.getRecords().length);
779 } 798 }
780 else { 799 else {
781 locationsTable.clearCriteria(); 800 locationsTable.clearCriteria();
782 distanceTable.clearCriteria(); 801 distanceTable.clearCriteria();
783 locationDistanceTable.clearCriteria(); 802 locationDistanceTable.clearCriteria();
803 filterResultCount.setValue("");
784 } 804 }
785 } 805 }
786 806
787 807
788 public void onFilterCriteriaChanged(RangeFilterEvent event) { 808 public void onFilterCriteriaChanged(RangeFilterEvent event) {
795 Criterion locationFilter = null; 815 Criterion locationFilter = null;
796 if (from.equals(Float.NaN) && to.equals(Float.NaN)) { 816 if (from.equals(Float.NaN) && to.equals(Float.NaN)) {
797 locationsTable.clearCriteria(); 817 locationsTable.clearCriteria();
798 distanceTable.clearCriteria(); 818 distanceTable.clearCriteria();
799 locationDistanceTable.clearCriteria(); 819 locationDistanceTable.clearCriteria();
820 filterResultCount.setValue("");
821 return;
800 } 822 }
801 else if (from.equals(Float.NaN)) { 823 else if (from.equals(Float.NaN)) {
802 combinedFilter = new Criterion("to", OperatorId.LESS_OR_EQUAL, to); 824 combinedFilter = new Criterion("to", OperatorId.LESS_OR_EQUAL, to);
803 locationFilter = 825 locationFilter =
804 new Criterion("from", OperatorId.LESS_OR_EQUAL, to); 826 new Criterion("from", OperatorId.LESS_OR_EQUAL, to);
805 locationsTable.filterData(locationFilter); 827 locationsTable.filterData(locationFilter);
806 distanceTable.filterData(combinedFilter); 828 distanceTable.filterData(combinedFilter);
807 locationDistanceTable.filterData(combinedFilter); 829 locationDistanceTable.filterData(combinedFilter);
830 filterResultCount.setValue(currentFiltered.getRecords().length);
808 return; 831 return;
809 } 832 }
810 else if (to.equals(Float.NaN)) { 833 else if (to.equals(Float.NaN)) {
811 combinedFilter = 834 combinedFilter =
812 new Criterion("from", OperatorId.GREATER_OR_EQUAL, from); 835 new Criterion("from", OperatorId.GREATER_OR_EQUAL, from);
839 }); 862 });
840 } 863 }
841 locationsTable.filterData(combinedFilter); 864 locationsTable.filterData(combinedFilter);
842 distanceTable.filterData(combinedFilter); 865 distanceTable.filterData(combinedFilter);
843 locationDistanceTable.filterData(combinedFilter); 866 locationDistanceTable.filterData(combinedFilter);
867 filterResultCount.setValue(currentFiltered.getRecords().length);
844 } 868 }
845 869
846 870
847 @Override 871 @Override
848 public List<String> validate() { 872 public List<String> validate() {
1132 } 1156 }
1133 if (value.equals(FIELD_VALUE_LOCATION)) { 1157 if (value.equals(FIELD_VALUE_LOCATION)) {
1134 enableLocationPanel(); 1158 enableLocationPanel();
1135 filterDescription.clear(); 1159 filterDescription.clear();
1136 filterRange.clear(); 1160 filterRange.clear();
1161 filterResultCount.setValue("");
1162
1137 // Remove the tab containing the locationDistanceTable. 1163 // Remove the tab containing the locationDistanceTable.
1138 // The 'updateTab()' avoids the tab content to be destroyed. 1164 // The 'updateTab()' avoids the tab content to be destroyed.
1139 inputTables.updateTab(0, null); 1165 inputTables.updateTab(0, null);
1140 inputTables.removeTab(0); 1166 inputTables.removeTab(0);
1141 1167
1149 } 1175 }
1150 else { 1176 else {
1151 enableDistancePanel(); 1177 enableDistancePanel();
1152 filterDescription.clear(); 1178 filterDescription.clear();
1153 filterRange.clear(); 1179 filterRange.clear();
1180 filterResultCount.setValue("");
1181
1154 // Remove the tab containing the locationTable. 1182 // Remove the tab containing the locationTable.
1155 // The 'updateTab()' avoids the tab content to be destroyed. 1183 // The 'updateTab()' avoids the tab content to be destroyed.
1156 inputTables.updateTab(0, null); 1184 inputTables.updateTab(0, null);
1157 inputTables.removeTab(0); 1185 inputTables.removeTab(0);
1158 1186

http://dive4elements.wald.intevation.org