diff gwt-client/src/main/java/org/dive4elements/river/client/client/ui/minfo/CheckboxPanel.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-client/src/main/java/org/dive4elements/river/client/client/ui/minfo/CheckboxPanel.java@821a02bbfb4e
children 172338b1407f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/minfo/CheckboxPanel.java	Thu Apr 25 15:23:37 2013 +0200
@@ -0,0 +1,117 @@
+package org.dive4elements.river.client.client.ui.minfo;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Set;
+
+import com.google.gwt.core.client.GWT;
+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.CheckboxItem;
+import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
+import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
+import com.smartgwt.client.widgets.layout.HLayout;
+import com.smartgwt.client.widgets.layout.VLayout;
+
+import org.dive4elements.river.client.client.ui.AbstractUIProvider;
+import org.dive4elements.river.client.shared.model.Data;
+import org.dive4elements.river.client.shared.model.DataItem;
+import org.dive4elements.river.client.shared.model.DataList;
+import org.dive4elements.river.client.shared.model.DefaultData;
+import org.dive4elements.river.client.shared.model.DefaultDataItem;
+
+public class CheckboxPanel extends AbstractUIProvider {
+
+    private String dataName;
+    HashMap<String, Boolean> values;
+
+    protected DynamicForm form;
+
+    public CheckboxPanel() {
+        super();
+        values = new HashMap<String, Boolean>();
+    }
+
+    @Override
+    public Canvas createOld(DataList dataList) {
+        Data       data  = dataList.get(0);
+        DataItem[] items = data.getItems();
+
+        HLayout layout = new HLayout();
+        Label   label  = new Label(dataList.getLabel());
+        Label   value  = new Label(items[0].getLabel());
+
+        layout.setHeight(35);
+        layout.setWidth(400);
+        label.setWidth(200);
+
+        layout.addMember(label);
+        layout.addMember(value);
+        layout.addMember(getBackButton(dataList.getState()));
+
+        return layout;
+    }
+
+    @Override
+    public Canvas create(DataList dataList) {
+        Data       data  = dataList.get(0);
+        DataItem[] items = data.getItems();
+
+        this.dataName = data.getLabel();
+        form = new DynamicForm();
+
+        VLayout layout = new VLayout();
+        Label   label  = new Label(data.getDescription());
+        LinkedList<CheckboxItem> cbItems = new LinkedList<CheckboxItem>();
+        for (int i = 0; i < items.length; i++) {
+            CheckboxItem item = new CheckboxItem(items[i].getLabel());
+            GWT.log(items[i].getStringValue() + "; " + items[i].getLabel());
+            item.addChangedHandler(new ChangedHandler() {
+                @Override
+                public void onChanged(ChangedEvent event) {
+                    values.put(
+                        event.getItem().getName(),
+                        (Boolean)event.getItem().getValue());
+                }
+            });
+            cbItems.add(item);
+        }
+
+        form.setFields(cbItems.toArray(new CheckboxItem[cbItems.size()]));
+        layout.setMembersMargin(10);
+        layout.setHeight(35);
+        label.setHeight(35);
+
+        layout.addMember(label);
+        layout.addMember(form);
+        layout.addMember(getNextButton());
+        layout.setMembersMargin(10);
+
+        return layout;
+    }
+
+    @Override
+    protected Data[] getData() {
+        String value = "";
+        Set<String> entries = values.keySet();
+        boolean first = true;
+        for (String s: values.keySet()) {
+            if (!first) {
+                value += ";";
+            }
+            if ((Boolean)values.get(s) == true) {
+                value += s;
+            }
+            first = false;
+        }
+        DataItem item = new DefaultDataItem("diameter", "diameter", value);
+
+        return new Data[] {new DefaultData(
+            "diameter",
+            null,
+            null,
+            new DataItem[]{item})};
+    }
+
+}

http://dive4elements.wald.intevation.org