Mercurial > dive4elements > river
diff flys-client/src/main/java/de/intevation/flys/client/client/ui/DistancePanel.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 | 204e085a9f1c |
children | 92f81eac034a |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/DistancePanel.java Fri Jan 20 15:47:14 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/DistancePanel.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; @@ -11,6 +12,10 @@ 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.SelectItem; +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.events.BlurHandler; import com.smartgwt.client.widgets.form.fields.events.BlurEvent; import com.smartgwt.client.widgets.grid.events.RecordClickHandler; @@ -36,6 +41,7 @@ import de.intevation.flys.client.client.ui.range.LocationsTable; import de.intevation.flys.client.client.event.FilterHandler; import de.intevation.flys.client.client.event.StringFilterEvent; +import de.intevation.flys.client.client.event.RangeFilterEvent; public class DistancePanel extends AbstractUIProvider implements BlurHandler, FilterHandler @@ -55,7 +61,8 @@ protected DoubleRangePanel distancePanel; - protected TableFilter filter; + protected TableFilter filterDescription; + protected RangeTableFilter filterRange; protected TabSet tabs; @@ -478,18 +485,57 @@ tabs.addTab(locations, 0); tabs.addTab(distances, 1); - 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); + + 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); + 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", MSG.description()); + filterMap.put("range", MSG.range()); + filterCriteria.setValueMap(filterMap); + filterCriteria.setValue("description"); + + DynamicForm form = new DynamicForm(); + form.setFields(filterCriteria); + + HLayout filterLayout = new HLayout(); + filterLayout.addMember(form); + filterLayout.addMember(filterDescription); + filterLayout.addMember(filterRange); + tabs.addTabSelectedHandler(new TabSelectedHandler() { public void onTabSelected(TabSelectedEvent evt) { - filter.clear(); + filterDescription.clear(); } }); helperContainer.addMember(tabs); - helperContainer.addMember(filter); + helperContainer.addMember(filterLayout); } @@ -508,6 +554,11 @@ } + public void onFilterCriteriaChanged(RangeFilterEvent event) { + GWT.log("filter range"); + } + + protected String getRiverName() { ArtifactDescription adescr = artifact.getArtifactDescription(); DataList[] data = adescr.getOldData();