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.tabsheet.tab.connector;
35
36 import info.magnolia.ui.vaadin.gwt.client.tabsheet.tab.widget.MagnoliaTabWidget;
37 import info.magnolia.ui.vaadin.tabsheet.MagnoliaTab;
38
39 import com.vaadin.client.ComponentConnector;
40 import com.vaadin.client.ConnectorHierarchyChangeEvent;
41 import com.vaadin.client.communication.StateChangeEvent;
42 import com.vaadin.client.communication.StateChangeEvent.StateChangeHandler;
43 import com.vaadin.client.ui.AbstractSingleComponentContainerConnector;
44 import com.vaadin.shared.ui.Connect;
45
46
47
48
49 @Connect(MagnoliaTab.class)
50 public class MagnoliaTabConnector extends AbstractSingleComponentContainerConnector {
51
52 @Override
53 protected void init() {
54 super.init();
55 addStateChangeHandler("isClosable", new StateChangeHandler() {
56 @Override
57 public void onStateChanged(StateChangeEvent stateChangeEvent) {
58 getWidget().getLabel().setClosable(getState().isClosable);
59 }
60 });
61
62 addStateChangeHandler("hasError", new StateChangeHandler() {
63 @Override
64 public void onStateChanged(StateChangeEvent stateChangeEvent) {
65 getWidget().getLabel().setHasError(getState().hasError);
66 }
67 });
68
69 addStateChangeHandler("isNotificationHidden", new StateChangeHandler() {
70 @Override
71 public void onStateChanged(StateChangeEvent stateChangeEvent) {
72 getWidget().getLabel().hideNotification();
73 }
74 });
75
76 addStateChangeHandler("notification", new StateChangeHandler() {
77 @Override
78 public void onStateChanged(StateChangeEvent stateChangeEvent) {
79 getWidget().getLabel().updateNotification(getState().notification);
80 }
81 });
82
83 addStateChangeHandler("isActive", new StateChangeHandler() {
84 @Override
85 public void onStateChanged(StateChangeEvent stateChangeEvent) {
86 getWidget().getLabel().updateNotification(getState().notification);
87 if (getState().isActive) {
88 getWidget().removeStyleName("inactive");
89 } else {
90 getWidget().addStyleName("inactive");
91 }
92 }
93 });
94
95 addStateChangeHandler("icon", new StateChangeHandler() {
96 @Override
97 public void onStateChanged(StateChangeEvent stateChangeEvent) {
98 if (getState().icon != null) {
99 getWidget().setIcon(getState().icon);
100 }
101 }
102 });
103 }
104
105 @Override
106 public void updateCaption(ComponentConnector connector) {
107 }
108
109 @Override
110 public MagnoliaTabWidget getWidget() {
111 return (MagnoliaTabWidget) super.getWidget();
112 }
113
114 @Override
115 protected MagnoliaTabWidget createWidget() {
116 return new MagnoliaTabWidget(this);
117 }
118
119 @Override
120 public MagnoliaTabState getState() {
121 return (MagnoliaTabState) super.getState();
122 }
123
124 @Override
125 protected MagnoliaTabState createState() {
126 return new MagnoliaTabState();
127 }
128
129 @Override
130 public void onConnectorHierarchyChange(ConnectorHierarchyChangeEvent e) {
131 if (!e.getOldChildren().isEmpty()) {
132 final ComponentConnector oldContent = e.getOldChildren().get(0);
133 getWidget().remove(oldContent.getWidget());
134 }
135
136 if (getContent() != null) {
137 getWidget().setWidget(getContent().getWidget());
138 }
139 }
140 }