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.form.field;
35
36 import info.magnolia.cms.i18n.I18nContentSupport;
37 import info.magnolia.objectfactory.ComponentProvider;
38 import info.magnolia.ui.api.i18n.I18NAuthoringSupport;
39 import info.magnolia.ui.form.field.definition.CompositeFieldDefinition;
40 import info.magnolia.ui.form.field.definition.ConfiguredFieldDefinition;
41 import info.magnolia.ui.form.field.definition.Layout;
42 import info.magnolia.ui.form.field.factory.FieldFactoryFactory;
43
44 import com.vaadin.ui.Component;
45 import com.vaadin.v7.data.Item;
46 import com.vaadin.v7.data.util.PropertysetItem;
47 import com.vaadin.v7.ui.Field;
48 import com.vaadin.v7.ui.HorizontalLayout;
49 import com.vaadin.v7.ui.VerticalLayout;
50
51
52
53
54
55
56
57
58
59
60
61 @Deprecated
62 public class CompositeField extends AbstractCustomMultiField<CompositeFieldDefinition, PropertysetItem> {
63
64 public CompositeField(CompositeFieldDefinition definition, FieldFactoryFactory fieldFactoryFactory, ComponentProvider componentProvider, Item relatedFieldItem, I18NAuthoringSupport i18nAuthoringSupport) {
65 super(definition, fieldFactoryFactory, componentProvider, relatedFieldItem, i18nAuthoringSupport);
66 }
67
68
69
70
71 @Deprecated
72 public CompositeField(CompositeFieldDefinition definition, FieldFactoryFactory fieldFactoryFactory, I18nContentSupport i18nContentSupport, ComponentProvider componentProvider, Item relatedFieldItem) {
73 this(definition, fieldFactoryFactory, componentProvider, relatedFieldItem, componentProvider.getComponent(I18NAuthoringSupport.class));
74 }
75
76 @Override
77 protected Component initContent() {
78
79 addStyleName("linkfield");
80 addStyleName("force-show-field-captions");
81 if (definition.getLayout() == Layout.horizontal) {
82 root = new HorizontalLayout();
83 } else {
84 root = new VerticalLayout();
85 }
86 root.setWidth(100, Unit.PERCENTAGE);
87 root.setSpacing(true);
88
89
90 initFields();
91 return root;
92 }
93
94 @Override
95 protected void initFields(PropertysetItem fieldValues) {
96 root.removeAllComponents();
97
98 for (ConfiguredFieldDefinition fieldDefinition : definition.getFields()) {
99
100 if (definition.isReadOnly()) {
101 fieldDefinition.setReadOnly(true);
102 }
103 Field<?> compositeField = createLocalField(fieldDefinition, fieldValues.getItemProperty(fieldDefinition.getName()), false);
104 if (fieldValues.getItemProperty(fieldDefinition.getName()) == null) {
105 fieldValues.addItemProperty(fieldDefinition.getName(), compositeField.getPropertyDataSource());
106 }
107 compositeField.setWidth(100, Unit.PERCENTAGE);
108
109 root.addComponent(compositeField);
110 }
111 }
112
113 @Override
114 public Class<? extends PropertysetItem> getType() {
115 return PropertysetItem.class;
116 }
117 }