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.MultiField;
41 import info.magnolia.ui.form.field.definition.MultiValueFieldDefinition;
42 import info.magnolia.ui.form.field.transformer.Transformer;
43 import info.magnolia.ui.form.field.transformer.multi.DelegatingMultiValueFieldTransformer;
44
45 import javax.inject.Inject;
46
47 import com.vaadin.v7.data.Item;
48 import com.vaadin.v7.data.util.PropertysetItem;
49 import com.vaadin.v7.ui.Field;
50
51
52
53
54
55
56
57
58
59
60
61
62 @Deprecated
63 public class MultiValueFieldFactory<D extends MultiValueFieldDefinition> extends AbstractFieldFactory<D, PropertysetItem> {
64
65 private FieldFactoryFactory fieldFactoryFactory;
66 private ComponentProvider componentProvider;
67 private I18NAuthoringSupport i18nAuthoringSupport;
68
69 @Inject
70 public MultiValueFieldFactory(D definition, Item relatedFieldItem, UiContext uiContext, I18NAuthoringSupport i18nAuthoringSupport, FieldFactoryFactory fieldFactoryFactory, ComponentProvider componentProvider) {
71 super(definition, relatedFieldItem, uiContext, i18nAuthoringSupport);
72 this.fieldFactoryFactory = fieldFactoryFactory;
73 this.componentProvider = componentProvider;
74 this.i18nAuthoringSupport = i18nAuthoringSupport;
75 }
76
77
78
79
80 @Deprecated
81 public MultiValueFieldFactory(D definition, Item relatedFieldItem, FieldFactoryFactory fieldFactoryFactory, ComponentProvider componentProvider, I18NAuthoringSupport i18nAuthoringSupport) {
82 this(definition, relatedFieldItem, null, i18nAuthoringSupport, fieldFactoryFactory, componentProvider);
83 }
84
85
86
87
88 @Deprecated
89 public MultiValueFieldFactory(D definition, Item relatedFieldItem, FieldFactoryFactory fieldFactoryFactory, I18nContentSupport i18nContentSupport, ComponentProvider componentProvider) {
90 this(definition, relatedFieldItem, null, componentProvider.getComponent(I18NAuthoringSupport.class), fieldFactoryFactory, componentProvider);
91 }
92
93 @Override
94 protected Field<PropertysetItem> createFieldComponent() {
95 MultiFieldld/MultiField.html#MultiField">MultiField field = new MultiField(definition, fieldFactoryFactory, componentProvider, item, i18nAuthoringSupport);
96
97 field.setButtonCaptionAdd(definition.getButtonSelectAddLabel());
98 field.setButtonCaptionRemove(definition.getButtonSelectRemoveLabel());
99 boolean isUnOrderable = DelegatingMultiValueFieldTransformer.class.isAssignableFrom(definition.getTransformerClass());
100 field.setOrderable(!isUnOrderable);
101
102 return field;
103 }
104
105
106
107
108 @Override
109 protected Transformer<?> initializeTransformer(Class<? extends Transformer<?>> transformerClass) {
110 Transformer<?> transformer = this.componentProvider.newInstance(transformerClass, item, definition, PropertysetItem.class);
111 transformer.setLocale(getLocale());
112 return transformer;
113 }
114 }