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.icon.connector;
35
36 import info.magnolia.ui.vaadin.gwt.client.icon.widget.IconWidget;
37 import info.magnolia.ui.vaadin.icon.CompositeIcon;
38
39 import com.google.gwt.dom.client.Style.Unit;
40 import com.vaadin.client.ComponentConnector;
41 import com.vaadin.client.ConnectorHierarchyChangeEvent;
42 import com.vaadin.client.ui.AbstractLayoutConnector;
43 import com.vaadin.shared.ui.AbstractLayoutState;
44 import com.vaadin.shared.ui.Connect;
45
46
47
48
49 @Connect(CompositeIcon.class)
50 public class CompositeIconConnector extends AbstractLayoutConnector {
51
52
53 @Override
54 public IconWidget getWidget() {
55 return (IconWidget) super.getWidget();
56 }
57
58 @Override
59 protected IconWidget createWidget() {
60 return new IconWidget();
61 }
62
63 @Override
64 protected AbstractLayoutState createState() {
65 return new AbstractLayoutState();
66 }
67
68 @Override
69 public void updateCaption(ComponentConnector connector) {
70 }
71
72 @Override
73 public void onConnectorHierarchyChange(ConnectorHierarchyChangeEvent event) {
74
75 boolean processedRoot = false;
76 for (final ComponentConnector cc : getChildComponents()) {
77 if (cc instanceof IconConnector) {
78 IconConnector c = (IconConnector) cc;
79 IconWidget w = c.getWidget();
80 getWidget().getElement().appendChild(w.getElement());
81 c.getState().size = -1;
82 if (!processedRoot) {
83 processedRoot = true;
84 } else {
85 w.getElement().getStyle().setMarginLeft(-1, Unit.EM);
86 }
87 }
88 }
89 }
90
91 }