comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/minfo/CheckboxPanel.java @ 3527:6ededa5aa803

MINFO: Added new UI provider for bed quality calculation. flys-client/trunk@5329 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 31 Aug 2012 11:29:44 +0000
parents
children 75a3a41a6e51
comparison
equal deleted inserted replaced
3526:02d18d38fca7 3527:6ededa5aa803
1 package de.intevation.flys.client.client.ui.minfo;
2
3 import java.util.HashMap;
4 import java.util.LinkedList;
5 import java.util.Set;
6
7 import com.google.gwt.core.client.GWT;
8 import com.smartgwt.client.widgets.Canvas;
9 import com.smartgwt.client.widgets.Label;
10 import com.smartgwt.client.widgets.form.DynamicForm;
11 import com.smartgwt.client.widgets.form.fields.CheckboxItem;
12 import com.smartgwt.client.widgets.form.fields.FormItem;
13 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
14 import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
15 import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
16 import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
17 import com.smartgwt.client.widgets.layout.HLayout;
18 import com.smartgwt.client.widgets.layout.VLayout;
19
20 import de.intevation.flys.client.client.ui.AbstractUIProvider;
21 import de.intevation.flys.client.shared.model.Data;
22 import de.intevation.flys.client.shared.model.DataItem;
23 import de.intevation.flys.client.shared.model.DataList;
24 import de.intevation.flys.client.shared.model.DefaultData;
25 import de.intevation.flys.client.shared.model.DefaultDataItem;
26
27 public class CheckboxPanel extends AbstractUIProvider {
28
29 private String dataName;
30 HashMap<String, Boolean> values;
31
32 protected DynamicForm form;
33
34 public CheckboxPanel() {
35 super();
36 values = new HashMap<String, Boolean>();
37 }
38
39 @Override
40 public Canvas createOld(DataList dataList) {
41 Data data = dataList.get(0);
42 DataItem[] items = data.getItems();
43
44 HLayout layout = new HLayout();
45 Label label = new Label(dataList.getLabel());
46 Label value = new Label(items[0].getLabel());
47
48 layout.setHeight(35);
49 layout.setWidth(400);
50 label.setWidth(200);
51
52 layout.addMember(label);
53 layout.addMember(value);
54 layout.addMember(getBackButton(dataList.getState()));
55
56 return layout;
57 }
58
59 @Override
60 public Canvas create(DataList dataList) {
61 Data data = dataList.get(0);
62 DataItem[] items = data.getItems();
63
64 this.dataName = data.getLabel();
65 form = new DynamicForm();
66
67 VLayout layout = new VLayout();
68 Label label = new Label(data.getDescription());
69 LinkedList<CheckboxItem> cbItems = new LinkedList<CheckboxItem>();
70 for (int i = 0; i < items.length; i++) {
71 CheckboxItem item = new CheckboxItem(items[i].getLabel());
72 GWT.log(items[i].getStringValue() + "; " + items[i].getLabel());
73 item.addChangedHandler(new ChangedHandler() {
74 @Override
75 public void onChanged(ChangedEvent event) {
76 values.put(
77 event.getItem().getName(),
78 (Boolean)event.getItem().getValue());
79 }
80 });
81 cbItems.add(item);
82 }
83
84 form.setFields(cbItems.toArray(new CheckboxItem[cbItems.size()]));
85 layout.setMembersMargin(10);
86 layout.setHeight(35);
87 label.setHeight(35);
88
89 layout.addMember(label);
90 layout.addMember(form);
91 layout.addMember(getNextButton());
92 layout.setMembersMargin(10);
93
94 return layout;
95 }
96
97 @Override
98 protected Data[] getData() {
99 String value = "";
100 Set<String> entries = values.keySet();
101 boolean first = true;
102 for (String s: values.keySet()) {
103 if (!first) {
104 value += ";";
105 }
106 if ((Boolean)values.get(s) == true) {
107 value += s;
108 }
109 first = false;
110 }
111 DataItem item = new DefaultDataItem("diameter", "diameter", value);
112
113 return new Data[] {new DefaultData(
114 "diameter",
115 null,
116 null,
117 new DataItem[]{item})};
118 }
119
120 }

http://dive4elements.wald.intevation.org