Mercurial > dive4elements > river
diff flys-client/src/main/java/de/intevation/flys/client/client/ui/LocationDistancePanel.java @ 1534:98123d34529b
Added UI parts and event for filtering distances and locations.
flys-client/trunk@3749 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Mon, 23 Jan 2012 11:07:38 +0000 |
parents | 2a00f4849738 |
children | 4f4d29404dba |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/LocationDistancePanel.java Fri Jan 20 15:47:14 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/LocationDistancePanel.java Mon Jan 23 11:07:38 2012 +0000 @@ -15,7 +15,12 @@ import com.smartgwt.client.widgets.form.fields.events.BlurEvent; import com.smartgwt.client.widgets.form.fields.events.ChangeHandler; import com.smartgwt.client.widgets.form.fields.events.ChangeEvent; +import com.smartgwt.client.widgets.form.fields.events.ChangedHandler; +import com.smartgwt.client.widgets.form.fields.events.ChangedEvent; + import com.smartgwt.client.widgets.form.fields.FormItem; +import com.smartgwt.client.widgets.form.fields.SelectItem; +import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.form.fields.RadioGroupItem; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; @@ -51,6 +56,7 @@ import de.intevation.flys.client.client.Config; import de.intevation.flys.client.client.event.FilterHandler; import de.intevation.flys.client.client.event.StringFilterEvent; +import de.intevation.flys.client.client.event.RangeFilterEvent; import de.intevation.flys.client.client.ui.range.DistanceInfoDataSource; @@ -137,7 +143,12 @@ protected DistanceInfoObject[] tableData; /** The table filter.*/ - protected TableFilter filter; + protected TableFilter filterDescription; + protected RangeTableFilter filterRange; + + /** The Combobox for table filter criteria. */ + protected SelectItem filterCriteria; + /** * Creates a new LocationDistancePanel instance. @@ -678,7 +689,7 @@ inputTables = new TabSet(); inputTables.addTabSelectedHandler(new TabSelectedHandler() { public void onTabSelected(TabSelectedEvent evt) { - filter.clear(); + filterDescription.clear(); } }); @@ -694,19 +705,59 @@ inputTables.addTab(locations); inputTables.addTab(distances); - filter = new TableFilter(); - filter.setHeight("30px"); - filter.addFilterHandler(this); + filterDescription = new TableFilter(); + filterDescription.setHeight("30px"); + filterDescription.addFilterHandler(this); + + filterRange = new RangeTableFilter(); + filterRange.setHeight("30px"); + filterRange.addFilterHandler(this); + filterRange.setVisible(false); + + filterCriteria = new SelectItem(); + filterCriteria.setShowTitle(false); + filterCriteria.setWidth(100); + filterCriteria.addChangedHandler(new ChangedHandler() { + public void onChanged(ChangedEvent e) { + if(e.getValue().toString().equals("range")) { + filterRange.setVisible(true); + filterDescription.setVisible(false); + filterDescription.clear(); + } + else { + filterRange.setVisible(false); + filterRange.clear(); + filterDescription.setVisible(true); + } + } + }); + + LinkedHashMap<String, String> filterMap = + new LinkedHashMap<String, String>(); + filterMap.put("description", MESSAGES.description()); + filterMap.put("range", MESSAGES.range()); + filterCriteria.setValueMap(filterMap); + filterCriteria.setValue("description"); + + DynamicForm form = new DynamicForm(); + form.setFields(filterCriteria); inputTables.setHeight("*"); VLayout helper = new VLayout(); + HLayout filterLayout = new HLayout(); + + filterLayout.addMember(form); + filterLayout.addMember(filterDescription); + filterLayout.addMember(filterRange); + filterLayout.setHeight("33px"); helper.addMember(inputTables); - helper.addMember(filter); + helper.addMember(filterLayout); helper.setHeight100(); helper.setWidth100(); helperContainer.addMember(helper); + filterLayout.setWidth("200"); return layout; } @@ -730,6 +781,9 @@ } + public void onFilterCriteriaChanged(RangeFilterEvent event) { + GWT.log("filtering range"); + } @Override @@ -1020,7 +1074,7 @@ } if (value.equals(FIELD_VALUE_LOCATION)) { enableLocationPanel(); - filter.clear(); + filterDescription.clear(); // Remove the tab containing the locationDistanceTable. // The 'updateTab()' avoids the tab content to be destroyed. inputTables.updateTab(0, null); @@ -1036,7 +1090,7 @@ } else { enableDistancePanel(); - filter.clear(); + filterDescription.clear(); // Remove the tab containing the locationTable. // The 'updateTab()' avoids the tab content to be destroyed. inputTables.updateTab(0, null);