Mercurial > dive4elements > river
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 |