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.contentapp.imageprovider;
35
36 import info.magnolia.objectfactory.ComponentProvider;
37 import info.magnolia.ui.api.app.SubAppContext;
38 import info.magnolia.ui.api.app.SubAppDescriptor;
39 import info.magnolia.ui.api.ioc.SubAppScoped;
40 import info.magnolia.ui.contentapp.definition.ContentSubAppDescriptor;
41 import info.magnolia.ui.imageprovider.ImageProvider;
42 import info.magnolia.ui.imageprovider.definition.ImageProviderDefinition;
43
44 import javax.inject.Inject;
45
46 import com.google.inject.Provider;
47
48
49
50
51
52
53 @Deprecated
54 @SubAppScoped
55 public class ImageProviderProvider implements Provider<ImageProvider> {
56
57 private ComponentProvider componentProvider;
58
59 private SubAppContext subAppContext;
60
61 private ImageProvider imageProvider;
62
63 @Inject
64 public ImageProviderProvider(ComponentProvider componentProvider, SubAppContext subAppContext) {
65 this.componentProvider = componentProvider;
66 this.subAppContext = subAppContext;
67 }
68
69 @Override
70 public ImageProvider get() {
71 if (imageProvider == null) {
72 ImageProviderDefinition definition = resolveImageProviderDefinition();
73 if (definition != null) {
74 imageProvider = componentProvider.newInstance(definition.getImageProviderClass(), definition);
75 }
76 }
77 if (imageProvider == null) {
78 imageProvider = new NullImageProvider();
79 }
80 return imageProvider;
81 }
82
83 protected ImageProviderDefinition resolveImageProviderDefinition() {
84 SubAppDescriptor subAppDescriptor = subAppContext.getSubAppDescriptor();
85 if (subAppDescriptor instanceof ContentSubAppDescriptor) {
86 return ((ContentSubAppDescriptor) subAppDescriptor).getImageProvider();
87 }
88 return null;
89 }
90
91
92
93
94 private static class NullImageProvider implements ImageProvider {
95
96 @Override
97 public String getPortraitPath(Object itemId) {
98 return null;
99 }
100
101 @Override
102 public String getThumbnailPath(Object itemId) {
103 return null;
104 }
105
106 @Override
107 public String resolveIconClassName(String mimeType) {
108 return null;
109 }
110
111 @Override
112 public Object getThumbnailResource(Object itemId, String generator) {
113 return null;
114 }
115 }
116
117 }