annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/minfo/CheckboxPanel.java @ 5462:f2371f3aaf03

Show top level folder icons only if node has no factory If you have an empty folder the folder icon is still shown. This makes it possible to add functional "Top Level" entries in the Datacage
author Andre Heinecke <aheinecke@intevation.de>
date Tue, 26 Mar 2013 18:29:13 +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 }

http://dive4elements.wald.intevation.org