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.contentapp.field;
35
36 import info.magnolia.ui.workbench.WorkbenchView;
37
38 import com.vaadin.ui.Component;
39 import com.vaadin.v7.data.Property;
40 import com.vaadin.v7.ui.CustomField;
41 import com.vaadin.v7.ui.TextField;
42 import com.vaadin.v7.ui.VerticalLayout;
43
44
45
46
47
48
49
50
51 public class TextAndContentViewField extends CustomField<String> {
52
53 private WorkbenchView contentView;
54
55 private VerticalLayout layout;
56
57 private TextField textField;
58
59 private boolean displayTextFieldOnTop;
60
61 private boolean isTextFieldVisible;
62
63 public TextAndContentViewField(boolean displayTextField, boolean displayTextFieldOnTop) {
64 this.displayTextFieldOnTop = displayTextFieldOnTop;
65 this.isTextFieldVisible = displayTextField;
66 this.textField = new TextField();
67 this.layout = new VerticalLayout();
68 }
69
70 @Override
71 protected Component initContent() {
72 addTextFieldToLayout(isTextFieldVisible);
73 addStyleName("text-and-content");
74 return layout;
75 }
76
77
78
79
80 private void addTextFieldToLayout(boolean displayTextField) {
81 if (!displayTextField) {
82 textField.setVisible(false);
83 return;
84 }
85 layout.addComponent(textField);
86 }
87
88 public TextField getTextField() {
89 return this.textField;
90 }
91
92 public WorkbenchView getContentView() {
93 return this.contentView;
94 }
95
96
97
98
99
100 public void setContentView(WorkbenchView contentView) {
101 if (this.contentView != null) {
102 layout.removeComponent(this.contentView.asVaadinComponent());
103 }
104 this.contentView = contentView;
105 if (!displayTextFieldOnTop) {
106 layout.addComponentAsFirst(this.contentView.asVaadinComponent());
107 } else {
108 layout.addComponent(this.contentView.asVaadinComponent());
109 }
110 }
111
112 @Override
113 protected void setInternalValue(String newValue) {
114 super.setInternalValue(newValue);
115 textField.setValue(newValue);
116 }
117
118 @Override
119 public void setReadOnly(boolean readOnly) {
120 super.setReadOnly(readOnly);
121 textField.setReadOnly(readOnly);
122 }
123
124 @Override
125 @SuppressWarnings("rawtypes")
126 public void setPropertyDataSource(Property newDataSource) {
127 textField.setPropertyDataSource(newDataSource);
128 }
129
130 @Override
131 @SuppressWarnings("rawtypes")
132 public Property getPropertyDataSource() {
133 return textField.getPropertyDataSource();
134 }
135
136 @Override
137 public Class<String> getType() {
138 return String.class;
139 }
140
141 @Override
142 public void setCaption(String caption) {
143 super.setCaption(null);
144 }
145 }