Mercurial > dive4elements > river
diff flys-client/src/main/java/de/intevation/flys/client/client/ui/SingleLocationPanel.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 | 4a5e65551923 |
children | 92f81eac034a |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/SingleLocationPanel.java Fri Jan 20 15:47:14 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/SingleLocationPanel.java Mon Jan 23 11:07:38 2012 +0000 @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.LinkedHashMap; import com.google.gwt.core.client.GWT; import com.google.gwt.i18n.client.NumberFormat; @@ -9,9 +10,14 @@ import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Label; +import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.events.BlurHandler; import com.smartgwt.client.widgets.form.fields.events.BlurEvent; import com.smartgwt.client.widgets.form.fields.FormItem; +import com.smartgwt.client.widgets.form.fields.SelectItem; +import com.smartgwt.client.widgets.form.fields.events.ChangedHandler; +import com.smartgwt.client.widgets.form.fields.events.ChangedEvent; + import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; import com.smartgwt.client.widgets.grid.ListGrid; @@ -41,6 +47,7 @@ import de.intevation.flys.client.client.ui.range.DistanceInfoDataSource; import de.intevation.flys.client.client.event.FilterHandler; import de.intevation.flys.client.client.event.StringFilterEvent; +import de.intevation.flys.client.client.event.RangeFilterEvent; /** @@ -304,12 +311,50 @@ container.setMembersMargin(30); - TableFilter filter = new TableFilter(); + final TableFilter filter = new TableFilter(); filter.setHeight("30px"); filter.addFilterHandler(this); + final RangeTableFilter filterRange = new RangeTableFilter(); + filterRange.setHeight("30px"); + filterRange.addFilterHandler(this); + filterRange.setVisible(false); + + SelectItem 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); + filter.setVisible(false); + filter.clear(); + } + else { + filterRange.setVisible(false); + filterRange.clear(); + filter.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); + + HLayout filterLayout = new HLayout(); + filterLayout.addMember(form); + filterLayout.addMember(filter); + filterLayout.addMember(filterRange); + helperContainer.addMember(locationTable); - helperContainer.addMember(filter); + helperContainer.addMember(filterLayout); createInputPanel(); return layout; } @@ -326,6 +371,12 @@ } } + + public void onFilterCriteriaChanged(RangeFilterEvent event) { + GWT.log("filter range"); + } + + @Override public List<String> validate() { List<String> errors = new ArrayList<String>();