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 setCaption(caption);
50 setContent(c);
51 }
52
53 public boolean isClosable() {
54 return getState(false).isClosable;
55 }
56
57 @Override
58 protected MagnoliaTabState getState(boolean markAsDirty) {
59 return (MagnoliaTabState) super.getState(markAsDirty);
60 }
61
62 @Override
63 protected MagnoliaTabState getState() {
64 return (MagnoliaTabState) super.getState();
65 }
66
67 @Override
68 public boolean isRendered(Component childComponent) {
69 return getState(false).isActive;
70 }
71
72 public void setClosable(boolean isClosable) {
73 getState().isClosable = isClosable;
74 }
75
76 public void setNotification(String text) {
77 getState().notification = text;
78 }
79
80 public void setHasError(boolean hasError) {
81 getState().hasError = hasError;
82 }
83
84 public void hideNotification() {
85 getState().isNotificationHidden = true;
86 }
87
88 public String getNotification() {
89 return getState(false).notification;
90 }
91
92 public boolean hasNotification() {
93 return getNotification() != null;
94 }
95
96 public boolean hasError() {
97 return getState(false).hasError;
98 }
99
100 @Override
101 public MagnoliaTabSheet getParent() {
102 return (MagnoliaTabSheet) super.getParent();
103 }
104
105 @Override
106 public void setContent(Component content) {
107 final Component currentContent = super.getContent();
108 if (currentContent != null) {
109 content.setVisible(currentContent.isVisible());
110 }
111 super.setContent(content);
112 }
113
114 public void setIcon(String icon) {
115 getState().icon = icon;
116 }
117
118 public void setActive(boolean active) {
119 getState().isActive = active;
120 }
121 }