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