Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/minfo/CheckboxPanel.java @ 4215:c179cd02177d
Logout the current user
Add code to the logout button to remove the current user from the session and to
redirect the browser window to the login page.
Part of flys/issue916 (Logout: "Abmelden" Knopf mit Funktion belegen)
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Tue, 23 Oct 2012 09:59:16 +0200 |
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 } |