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.upload;
35
36 import static info.magnolia.ui.contentapp.action.ChooseActionDefinition.CHOOSE_ACTION_NAME;
37 import static info.magnolia.ui.contentapp.action.CloseActionDefinition.CLOSE_ACTION_NAME;
38
39 import info.magnolia.ui.ValueContext;
40 import info.magnolia.ui.dialog.layout.DefaultEditorActionLayoutDefinition;
41 import info.magnolia.ui.dialog.layout.DefaultEditorActionLayoutProducer;
42 import info.magnolia.ui.framework.util.TempFilesManager;
43
44 import java.util.Arrays;
45 import java.util.Map;
46
47 import javax.inject.Inject;
48
49 import com.google.common.collect.Sets;
50 import com.vaadin.ui.Button;
51 import com.vaadin.ui.Component;
52
53
54
55
56 public class AssetChooserFooterProducer extends DefaultEditorActionLayoutProducer {
57
58 private final AssetUploadContext context;
59 private final TempFilesManager tempFilesManager;
60 private final ValueContext<?> valueContext;
61
62 @Inject
63 AssetChooserFooterProducer(AssetUploadContext context, TempFilesManager tempFilesManager, ValueContext<?> valueContext) {
64 this.tempFilesManager = tempFilesManager;
65 this.context = context;
66 this.valueContext = valueContext;
67 }
68
69 @Override
70 public Component createLayout(DefaultEditorActionLayoutDefinition layoutDefinition, Map<String, Component> mappings) {
71 mappings.computeIfPresent(Definition.UPLOAD, (s, component) -> new AssetUpload(context, tempFilesManager, (Button) component, valueContext));
72 return super.createLayout(layoutDefinition, mappings);
73 }
74
75
76
77
78 public static class Definition extends DefaultEditorActionLayoutDefinition {
79
80 private static final String UPLOAD = "upload";
81 private static final String UPLOAD_AND_EDIT = "uploadAndEdit";
82
83 public Definition() {
84 setImplementationClass((Class) AssetChooserFooterProducer.class);
85 setPrimaryActions(Arrays.asList(CHOOSE_ACTION_NAME, CLOSE_ACTION_NAME));
86 setSecondaryActions(Sets.newHashSet(UPLOAD, UPLOAD_AND_EDIT));
87 }
88 }
89 }