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.dam.app.ui.field.factory;
35
36 import info.magnolia.cms.core.Path;
37 import info.magnolia.dam.app.ui.field.definition.DamUploadFieldDefinition;
38 import info.magnolia.dam.app.ui.field.upload.AssetUploadReceiver;
39 import info.magnolia.dam.app.ui.field.upload.DamUploadField;
40 import info.magnolia.i18nsystem.SimpleTranslator;
41 import info.magnolia.objectfactory.ComponentProvider;
42 import info.magnolia.ui.api.app.SubAppContext;
43 import info.magnolia.ui.api.context.UiContext;
44 import info.magnolia.ui.form.field.factory.AbstractFieldFactory;
45 import info.magnolia.ui.form.field.transformer.Transformer;
46 import info.magnolia.ui.imageprovider.ImageProvider;
47 import info.magnolia.ui.mediaeditor.MediaEditorPresenterFactory;
48
49 import java.io.File;
50
51 import javax.inject.Inject;
52
53 import org.slf4j.Logger;
54 import org.slf4j.LoggerFactory;
55
56 import com.vaadin.data.Item;
57 import com.vaadin.ui.Field;
58
59
60
61
62 public class DamUploadFieldFactory extends AbstractFieldFactory<DamUploadFieldDefinition, AssetUploadReceiver> {
63
64 private static final Logger log = LoggerFactory.getLogger(DamUploadFieldFactory.class);
65
66 private MediaEditorPresenterFactory mediaEditorFactory;
67 private final UiContext uiContext;
68 private ImageProvider imageProvider;
69 private ComponentProvider componentProvider;
70 private final SimpleTranslator i18n;
71
72 @Inject
73 public DamUploadFieldFactory(DamUploadFieldDefinition definition, Item relatedFieldItem, ImageProvider imageProvider, UiContext uiContext, MediaEditorPresenterFactory mediaEditorFactory, ComponentProvider componentProvider, SimpleTranslator i18n) {
74 super(definition, relatedFieldItem);
75 this.mediaEditorFactory = mediaEditorFactory;
76 this.uiContext = uiContext;
77 this.imageProvider = imageProvider;
78 this.componentProvider = componentProvider;
79 this.i18n = i18n;
80 }
81
82
83
84
85 @Deprecated
86 public DamUploadFieldFactory(DamUploadFieldDefinition definition, Item relatedFieldItem, ImageProvider imageProvider, SubAppContext subAppContext, MediaEditorPresenterFactory mediaEditorFactory, ComponentProvider componentProvider, SimpleTranslator i18n) {
87 this(definition, relatedFieldItem, imageProvider, (UiContext) subAppContext, mediaEditorFactory, componentProvider, i18n);
88 }
89
90 @Override
91 protected Field<AssetUploadReceiver> createFieldComponent() {
92
93 return new DamUploadField(imageProvider, uiContext, mediaEditorFactory, componentProvider, definition, i18n);
94 }
95
96
97
98
99 File getTempDirectory() {
100 return Path.getTempDirectory();
101 }
102
103 @Override
104 protected Transformer<?> initializeTransformer(Class<? extends Transformer<?>> transformerClass) {
105 return this.componentProvider.newInstance(transformerClass, item, definition, AssetUploadReceiver.class);
106 }
107 }