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 }
96
97 @Override
98 public void updateCaption(ComponentConnector connector) {
99 }
100
101 @Override
102 public MagnoliaTabWidget getWidget() {
103 return (MagnoliaTabWidget) super.getWidget();
104 }
105
106 @Override
107 protected MagnoliaTabWidget createWidget() {
108 return new MagnoliaTabWidget(this);
109 }
110
111 @Override
112 public MagnoliaTabState getState() {
113 return (MagnoliaTabState) super.getState();
114 }
115
116 @Override
117 protected MagnoliaTabState createState() {
118 return new MagnoliaTabState();
119 }
120
121 @Override
122 public void onConnectorHierarchyChange(ConnectorHierarchyChangeEvent e) {
123 if (!e.getOldChildren().isEmpty()) {
124 final ComponentConnector oldContent = e.getOldChildren().get(0);
125 getWidget().remove(oldContent.getWidget());
126 }
127
128 if (getContent() != null) {
129 getWidget().setWidget(getContent().getWidget());
130 }
131 }
132 }