1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.ui.vaadin.gwt.client.applauncher.widget;
35
36 import java.util.HashMap;
37 import java.util.Map;
38 import java.util.Map.Entry;
39
40 import com.google.gwt.user.client.ui.FlowPanel;
41
42
43
44
45 public class VTemporaryAppGroupBar extends FlowPanel {
46
47 private final Map<VTemporaryAppGroupBarTile, VTemporaryAppTileGroup> groupMap = new HashMap<VTemporaryAppGroupBarTile, VTemporaryAppTileGroup>();
48
49 private VTemporaryAppTileGroup currentOpenGroup = null;
50
51 public VTemporaryAppGroupBar() {
52 super();
53 addStyleName("app-list");
54 addStyleName("sections");
55 }
56
57 protected void handleTileClick(VTemporaryAppTileGroup group, VTemporaryAppGroupBarTile groupTile) {
58 closeCurrentOpenExpander();
59 if (group != null) {
60 if (currentOpenGroup != group) {
61 if (currentOpenGroup != null) {
62 currentOpenGroup.closeSection();
63 }
64 group.showSection();
65 currentOpenGroup = group;
66 groupTile.openExpander();
67 } else {
68 currentOpenGroup.closeSection();
69 currentOpenGroup = null;
70 }
71 }
72 }
73
74 protected void closeCurrentOpenExpander() {
75 if (currentOpenGroup != null) {
76 for (Entry<VTemporaryAppGroupBarTile, VTemporaryAppTileGroup> entry : groupMap.entrySet()) {
77 if (currentOpenGroup == entry.getValue()) {
78 entry.getKey().closeExpander();
79 break;
80 }
81 }
82 }
83 }
84
85 public void addGroup(String caption, VAppTileGroup group) {
86 VTemporaryAppGroupBarTile groupTile = new VTemporaryAppGroupBarTile(caption, group, this);
87 groupMap.put(groupTile, (VTemporaryAppTileGroup) group);
88 add(groupTile);
89 }
90
91 }