diff flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacagePairWidget.java @ 1283:e8bb11976c70

Neaten certain GUI aspects with W-Diff waterlevel-pair selection. flys-client/trunk@2867 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 30 Sep 2011 07:44:35 +0000
parents 87b6a93db523
children cdb1505a32f1
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacagePairWidget.java	Thu Sep 29 14:52:29 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacagePairWidget.java	Fri Sep 30 07:44:35 2011 +0000
@@ -1,5 +1,9 @@
 package de.intevation.flys.client.client.ui;
 
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 import com.google.gwt.core.client.GWT;
 
 import com.smartgwt.client.widgets.Button;
@@ -20,6 +24,8 @@
 import de.intevation.flys.client.client.FLYSConstants;
 
 import de.intevation.flys.client.shared.model.Recommendation;
+import de.intevation.flys.client.shared.model.Recommendation.Facet;
+import de.intevation.flys.client.shared.model.Recommendation.Filter;
 
 
 /**
@@ -29,73 +35,88 @@
 public class DatacagePairWidget
 extends      VLayout
 {
-    protected FLYSConstants messages =
-        GWT.create(FLYSConstants.class);
-
-    /** The "remote" ListGrid to insert data to when add-button is clicked. */
-    protected ListGrid grid; 
+protected FLYSConstants messages =
+    GWT.create(FLYSConstants.class);
 
-    /** First attribute-name for StringPairRecord. */
-    protected static final String ATTRIBUTE_FIRST  = "first";
+/** The "remote" ListGrid to insert data to when add-button is clicked. */
+protected ListGrid grid; 
 
-    /** Second attribute-name for StringPairRecord. */
-    protected static final String ATTRIBUTE_SECOND = "second";
+/** First attribute-name for StringPairRecord. */
+protected static final String ATTRIBUTE_FIRST  = "first";
 
-    /** First (upper) DataCage Grid. */
-    protected DatacageWidget firstDatacageWidget;
+/** Second attribute-name for StringPairRecord. */
+protected static final String ATTRIBUTE_SECOND = "second";
 
-    /** Second (lower) DataCage Grid. */
-    protected DatacageWidget secondDatacageWidget;
+/** First (upper) DataCage Grid. */
+protected DatacageWidget firstDatacageWidget;
+
+/** Second (lower) DataCage Grid. */
+protected DatacageWidget secondDatacageWidget;
 
 
-    /**
-     * Two strings to be displayed in a GridList.
-     */
-    protected class RecommendationPairRecord extends ListGridRecord {
-        Recommendation first;
-        Recommendation second;
-
-        public RecommendationPairRecord() {
-        }
+/**
+ * Two strings to be displayed in a GridList, derived from two
+ * Recommendations.
+ */
+protected class RecommendationPairRecord extends ListGridRecord {
+    Recommendation first;
+    Recommendation second;
+    String firstName;
+    String secondName;
 
-        public RecommendationPairRecord(Recommendation first, Recommendation second) {
-            setFirst(first);
-            setSecond(second);
-        }
-
+    public RecommendationPairRecord() {
+    }
 
-        public void setFirst(Recommendation first) {
-            this.first = first;
-            setAttribute(ATTRIBUTE_FIRST, first.getFactory() + first.getIDs());
-        }
-
-
-        public void setSecond(Recommendation second) {
-            this.second = second;
-            setAttribute(ATTRIBUTE_SECOND, second.getFactory() + second.getIDs());
-        }
-
-        public Recommendation getFirst() {return first;}
-        public Recommendation getSecond() {return second;}
+    public RecommendationPairRecord(String firstName,
+        Recommendation first,
+        String secondName,
+        Recommendation second)
+    {
+        setFirst(first, firstName);
+        setSecond(second, secondName);
     }
 
 
-    /**
-     *
-     * @param artifact Artifact to query datacage with.
-     * @param user     User to query datacage with.
-     * @param outs     outs to query datacage with.
-     * @param grid     Grid into which to insert selection of pairs.
-     */
-    public DatacagePairWidget(Artifact artifact, User user, String outs,
-            ListGrid grid) {
+    public void setFirst(Recommendation first, String name) {
+        this.first = first;
+        this.firstName = name;
+        setAttribute(ATTRIBUTE_FIRST, name);
+    }
+
+
+    public void setSecond(Recommendation second, String name) {
+        this.second = second;
+        this.secondName = name;
+        setAttribute(ATTRIBUTE_SECOND, name);
+    }
+
+    public Recommendation getFirst() {return first;}
+    public Recommendation getSecond() {return second;}
+    public String getFirstName() {return firstName;}
+    public String getSecondName() {return secondName;}
+}
+
+
+/**
+ *
+ * @param artifact Artifact to query datacage with.
+ * @param user     User to query datacage with.
+ * @param outs     outs to query datacage with.
+ * @param grid     Grid into which to insert selection of pairs.
+ */
+public DatacagePairWidget(Artifact artifact,
+         User user,
+         String outs,
+         ListGrid grid) {
         this.grid = grid;
 
-        HLayout hLayout = new HLayout();
+        HLayout hLayout      = new HLayout();
+        firstDatacageWidget  = new DatacageWidget(artifact, user, outs, false);
+        secondDatacageWidget = new DatacageWidget(artifact, user, outs, false);
+        firstDatacageWidget.setIsMutliSelectable(false);
+        secondDatacageWidget.setIsMutliSelectable(false);
 
-        firstDatacageWidget = new DatacageWidget(artifact, user, outs, false);
         hLayout.addMember(firstDatacageWidget);
-        secondDatacageWidget = new DatacageWidget(artifact, user, outs, false);
         hLayout.addMember(secondDatacageWidget);
 
         // TODO: i18n + icon
@@ -119,6 +140,8 @@
     public void plusClicked() {
         ToLoad toLoad1 = firstDatacageWidget.getSelection();
         ToLoad toLoad2 = secondDatacageWidget.getSelection();
+        String [] sel1 = firstDatacageWidget.getSelectionTitles();
+        String [] sel2 = secondDatacageWidget.getSelectionTitles();
 
         // TODO further sanitize (toRecommendations.length)
         if (toLoad1 == null || toLoad2 == null) {
@@ -126,7 +149,9 @@
         }
 
         grid.addData(new RecommendationPairRecord(
+            sel1[0],
             toLoad1.toRecommendations().get(0),
+            sel2[0],
             toLoad2.toRecommendations().get(0)));
     }
 }

http://dive4elements.wald.intevation.org