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
88
89 initFields();
90 return root;
91 }
92
93 @Override
94 protected void initFields(PropertysetItem fieldValues) {
95 root.removeAllComponents();
96
97 for (ConfiguredFieldDefinition fieldDefinition : definition.getFields()) {
98
99 if (definition.isReadOnly()) {
100 fieldDefinition.setReadOnly(true);
101 }
102 Field<?> compositeField = createLocalField(fieldDefinition, fieldValues.getItemProperty(fieldDefinition.getName()), false);
103 if (fieldValues.getItemProperty(fieldDefinition.getName()) == null) {
104 fieldValues.addItemProperty(fieldDefinition.getName(), compositeField.getPropertyDataSource());
105 }
106 compositeField.setWidth(100, Unit.PERCENTAGE);
107
108 root.addComponent(compositeField);
109 }
110 }
111
112 @Override
113 public Class<? extends PropertysetItem> getType() {
114 return PropertysetItem.class;
115 }
116 }