diff gwt-client/src/main/java/org/dive4elements/river/client/client/ui/RadioPanel.java @ 9369:1a4d2ce77423

radio choice fix
author gernotbelger
date Thu, 02 Aug 2018 17:39:13 +0200
parents c7e5285d434f
children
line wrap: on
line diff
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/RadioPanel.java	Thu Aug 02 15:06:22 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/RadioPanel.java	Thu Aug 02 17:39:13 2018 +0200
@@ -29,71 +29,83 @@
 
     private static final long serialVersionUID = 3357071563224461043L;
 
-    protected String dataName;
     protected DynamicForm form;
     private final Map<String, String> valueLabelMap = new LinkedHashMap<String, String>();
 
+    private final String datakey;
+
+    public RadioPanel(final String datakey) {
+        this.datakey = datakey;
+    }
+
+    protected final String getDatakey() {
+        return this.datakey;
+    }
+
     @Override
     public Canvas createOld(final DataList dataList) {
-        final Data data = dataList.get(0);
-        final DataItem[] items = data.getItems();
-        // hat Einfluss auf Layout in der Übersicht (oben) nach Setzen des Wertes für den State
         final HLayout layout = new HLayout();
-        final Label label = new Label(dataList.getLabel());
-        final Label value = new Label(items[0].getLabel());
-        layout.setWidth(400);
-        label.setWidth(200); // nicht ändern; scheint wohl ne Konstante zu sein!
-        value.setWidth(180); // änderbar
-        layout.setHeight(35);
+        for (final Data data : dataList.getAll()) {
+            if (this.datakey.equals(data.getLabel())) {
+                final DataItem[] items = data.getItems();
+                // hat Einfluss auf Layout in der Übersicht (oben) nach Setzen des Wertes für den State
 
-        layout.addMember(label);
-        layout.addMember(value);
-        layout.addMember(getBackButton(dataList.getState()));
+                final Label label = new Label(dataList.getLabel());
+                final Label value = new Label(items[0].getLabel());
+                layout.setWidth(400);
+                label.setWidth(200); // nicht ändern; scheint wohl ne Konstante zu sein!
+                value.setWidth(180); // änderbar
+                layout.setHeight(35);
 
+                layout.addMember(label);
+                layout.addMember(value);
+                layout.addMember(getBackButton(dataList.getState()));
+
+            }
+        }
         return layout;
     }
 
     @Override
     public Canvas create(final DataList dataList) {
-        final Data data = dataList.get(0);
-        final DataItem[] items = data.getItems();
-
-        this.dataName = data.getLabel();
-
         final VLayout layout = new VLayout();
-        final Label label = new Label(data.getDescription());
-        label.setWrap(false);
-        final RadioGroupItem rgi = new RadioGroupItem("selection");
-        rgi.setWrapTitle(false);
-        rgi.setWrap(false);
-        rgi.setShowTitle(false);
-        GWT.log("items: " + items.length);
-        final LinkedHashMap<String, String> elems = new LinkedHashMap<String, String>();
-        for (final DataItem item : items) {
-            GWT.log(item.getStringValue() + "; " + item.getLabel());
-            if (!item.getLabel().startsWith("ignore_")) {
-                elems.put(item.getStringValue(), item.getLabel());
-                this.valueLabelMap.put(item.getStringValue(), item.getLabel());
+        for (final Data data : dataList.getAll()) {
+            if (this.datakey.equals(data.getLabel())) {
+                final DataItem[] items = data.getItems();
+
+                final Label label = new Label(data.getDescription());
+                label.setWrap(false);
+                final RadioGroupItem rgi = new RadioGroupItem("selection");
+                rgi.setWrapTitle(false);
+                rgi.setWrap(false);
+                rgi.setShowTitle(false);
+                GWT.log("items: " + items.length);
+                final LinkedHashMap<String, String> elems = new LinkedHashMap<String, String>();
+                for (final DataItem item : items) {
+                    GWT.log(item.getStringValue() + "; " + item.getLabel());
+                    if (!item.getLabel().startsWith("ignore_")) {
+                        elems.put(item.getStringValue(), item.getLabel());
+                        this.valueLabelMap.put(item.getStringValue(), item.getLabel());
+                    }
+                }
+                rgi.setValueMap(elems);
+                rgi.setDefaultValue(items[0].getStringValue());
+
+                this.form = new DynamicForm();
+                this.form.setFields(rgi);
+                layout.setMembersMargin(10);
+                layout.setHeight(35);
+                label.setHeight(35);
+                layout.setWidth(300);
+                label.setWidth(300);
+
+                layout.addMember(label);
+                layout.addMember(this.form);
+                layout.addMember(getNextButton());
+                layout.setMembersMargin(10);
+
             }
         }
-        rgi.setValueMap(elems);
-        rgi.setDefaultValue(items[0].getStringValue());
-
-        this.form = new DynamicForm();
-        this.form.setFields(rgi);
-        layout.setMembersMargin(10);
-        layout.setHeight(35);
-        label.setHeight(35);
-        layout.setWidth(300);
-        label.setWidth(300);
-
-        layout.addMember(label);
-        layout.addMember(this.form);
-        layout.addMember(getNextButton());
-        layout.setMembersMargin(10);
-
-        // initDefaultValues(dataList);
-
         return layout;
     }
 
@@ -102,13 +114,9 @@
         final String value = this.form.getValueAsString("selection");
 
         final DataItem item = new DefaultDataItem("label_irrelevant", "description_irrelevant", value);
-        // Alles hoffnungslos:
-        // final DataItem useHeader = new DefaultDataItem("label_irrelevant", "description_irrelevant",
-        // this.valueLabelMap.get(value));
 
-        return new Data[] { new DefaultData(this.dataName, "label_no_effect", "description_no_effect", new DataItem[] { item // , useHeader
-                })
-                // ,new DefaultData("value", "label", "description", new DataItem[] { useHeader }) DOES NOT WORK
+        return new Data[] { new DefaultData(this.datakey, "label_no_effect", "description_no_effect", new DataItem[] { item })
+
         };
     }
 

http://dive4elements.wald.intevation.org