Mercurial > dive4elements > river
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 } |