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.factory;
35
36 import info.magnolia.cms.i18n.I18nContentSupport;
37 import info.magnolia.objectfactory.ComponentProvider;
38 import info.magnolia.ui.api.context.UiContext;
39 import info.magnolia.ui.api.i18n.I18NAuthoringSupport;
40 import info.magnolia.ui.form.field.CompositeField;
41 import info.magnolia.ui.form.field.definition.CompositeFieldDefinition;
42 import info.magnolia.ui.form.field.transformer.Transformer;
43
44 import java.util.List;
45
46 import javax.inject.Inject;
47
48 import org.slf4j.Logger;
49 import org.slf4j.LoggerFactory;
50
51 import com.vaadin.v7.data.Item;
52 import com.vaadin.v7.data.util.PropertysetItem;
53 import com.vaadin.v7.ui.Field;
54
55
56
57
58
59
60
61
62
63
64 @Deprecated
65 public class CompositeFieldFactory<D extends CompositeFieldDefinition> extends AbstractFieldFactory<D, PropertysetItem> {
66
67 private static final Logger log = LoggerFactory.getLogger(CompositeFieldFactory.class);
68 private FieldFactoryFactory fieldFactoryFactory;
69 private ComponentProvider componentProvider;
70 private final I18NAuthoringSupport i18nAuthoringSupport;
71
72 @Inject
73 public CompositeFieldFactory(D definition, Item relatedFieldItem, UiContext uiContext, I18NAuthoringSupport i18nAuthoringSupport, FieldFactoryFactory fieldFactoryFactory, ComponentProvider componentProvider) {
74 super(definition, relatedFieldItem, uiContext, i18nAuthoringSupport);
75 this.fieldFactoryFactory = fieldFactoryFactory;
76 this.componentProvider = componentProvider;
77 this.i18nAuthoringSupport = i18nAuthoringSupport;
78 }
79
80
81
82
83 @Deprecated
84 public CompositeFieldFactory(D definition, Item relatedFieldItem, FieldFactoryFactory fieldFactoryFactory, ComponentProvider componentProvider, I18NAuthoringSupport i18nAuthoringSupport) {
85 this(definition, relatedFieldItem, null, i18nAuthoringSupport, fieldFactoryFactory, componentProvider);
86 }
87
88
89
90
91 @Deprecated
92 public CompositeFieldFactory(D definition, Item relatedFieldItem, FieldFactoryFactory fieldFactoryFactory, I18nContentSupport i18nContentSupport, ComponentProvider componentProvider) {
93 this(definition, relatedFieldItem, null, componentProvider.getComponent(I18NAuthoringSupport.class), fieldFactoryFactory, componentProvider);
94 }
95
96 @Override
97 protected Field<PropertysetItem> createFieldComponent() {
98
99 if (definition.isRequired()) {
100 log.warn("Definition of the composite field named [{}] is configured as required which is not supported (it is possible to configure the sub-fields as required though).", definition.getName());
101 definition.setRequired(false);
102 }
103 CompositeFieldompositeField.html#CompositeField">CompositeField field = new CompositeField(definition, fieldFactoryFactory, componentProvider, item, i18nAuthoringSupport);
104 return field;
105 }
106
107
108
109
110 @Override
111 protected Transformer<?> initializeTransformer(Class<? extends Transformer<?>> transformerClass) {
112 List<String> propertyNames = definition.getFieldNames();
113 Transformer<?> transformer = this.componentProvider.newInstance(transformerClass, item, definition, PropertysetItem.class, propertyNames);
114 transformer.setLocale(getLocale());
115 return transformer;
116 }
117 }