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.tabsheet;
35
36 import info.magnolia.ui.vaadin.gwt.client.tabsheet.tab.connector.MagnoliaTabState;
37
38 import com.vaadin.ui.AbstractSingleComponentContainer;
39 import com.vaadin.ui.Component;
40 import com.vaadin.ui.SelectiveRenderer;
41
42
43
44
45 public class MagnoliaTab extends AbstractSingleComponentContainer implements SelectiveRenderer {
46
47 public MagnoliaTab(final String caption, final Component c) {
48 setSizeFull();
49 setImmediate(true);
50 setCaption(caption);
51 setContent(c);
52 }
53
54 public boolean isClosable() {
55 return getState(false).isClosable;
56 }
57
58 @Override
59 protected MagnoliaTabState getState(boolean markAsDirty) {
60 return (MagnoliaTabState) super.getState(markAsDirty);
61 }
62
63 @Override
64 protected MagnoliaTabState getState() {
65 return (MagnoliaTabState) super.getState();
66 }
67
68 @Override
69 public boolean isRendered(Component childComponent) {
70 return getState(false).isActive;
71 }
72
73 public void setClosable(boolean isClosable) {
74 getState().isClosable = isClosable;
75 }
76
77 public void setNotification(String text) {
78 getState().notification = text;
79 }
80
81 public void setHasError(boolean hasError) {
82 getState().hasError = hasError;
83 }
84
85 public void hideNotification() {
86 getState().isNotificationHidden = true;
87 }
88
89 public String getNotification() {
90 return getState(false).notification;
91 }
92
93 public boolean hasNotification() {
94 return getNotification() != null;
95 }
96
97 public boolean hasError() {
98 return getState(false).hasError;
99 }
100
101 @Override
102 public MagnoliaTabSheet getParent() {
103 return (MagnoliaTabSheet) super.getParent();
104 }
105
106 @Override
107 public void setContent(Component content) {
108 final Component currentContent = super.getContent();
109 if (currentContent != null) {
110 content.setVisible(currentContent.isVisible());
111 }
112 super.setContent(content);
113 }
114
115 public void setIcon(String icon) {
116 getState().icon = icon;
117 }
118
119 public void setActive(boolean active) {
120 getState().isActive = active;
121 }
122 }