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();

http://dive4elements.wald.intevation.org