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.imageprovider;
35
36 import info.magnolia.ui.vaadin.integration.contentconnector.ContentConnector;
37
38 import org.apache.commons.lang3.StringUtils;
39
40 import com.vaadin.v7.data.Item;
41
42
43
44
45
46
47
48
49 @Deprecated
50 public abstract class AbstractImageProvider implements ImageProvider {
51
52 private final ContentConnector contentConnector;
53
54 protected AbstractImageProvider(ContentConnector contentConnector) {
55 this.contentConnector = contentConnector;
56 }
57
58
59
60
61
62
63 protected abstract Object resolveImageResource(Item item, String generator);
64
65
66
67
68
69
70
71 protected abstract String resolveImagePath(Item item, String generator);
72
73 @Override
74 public String getPortraitPath(Object itemId) {
75 Item item = contentConnector.getItem(itemId);
76 return resolveImagePath(item, PORTRAIT_GENERATOR);
77 }
78
79 @Override
80 public String getThumbnailPath(Object itemId) {
81 Item item = contentConnector.getItem(itemId);
82 return resolveImagePath(item, THUMBNAIL_GENERATOR);
83 }
84
85 @Override
86 public Object getThumbnailResource(Object itemId, String generator) {
87 Item item = contentConnector.getItem(itemId);
88 return resolveImageResource(item, generator);
89 }
90
91 @Override
92 public String resolveIconClassName(String mimeType) {
93 String fileType = resolveFileTypeFromMimeType(mimeType);
94
95 if (!"".equals(fileType)) {
96 return "file-" + fileType;
97 }
98
99 return "file";
100 }
101
102 private String resolveFileTypeFromMimeType(String mimeType) {
103 if (StringUtils.isBlank(mimeType)) {
104 return StringUtils.EMPTY;
105 }
106 if (mimeType.contains("application/pdf")) {
107 return "pdf";
108 }
109 if (mimeType.matches("application.*(msword)")) {
110 return "word";
111 }
112 if (mimeType.matches("application.*(excel|xls)")) {
113 return "excel";
114 }
115 if (mimeType.matches("application.*(powerpoint)")) {
116 return "powerpoint";
117 }
118 if (mimeType.contains("text/")) {
119 return "text";
120 }
121 if (mimeType.contains("image/")) {
122 return "image";
123 }
124 if (mimeType.contains("video/")) {
125 return "video";
126 }
127 if (mimeType.contains("audio/")) {
128 return "audio";
129 }
130 if (mimeType.matches(".*(zip|compress)")) {
131 return StringUtils.EMPTY;
132 }
133
134 return StringUtils.EMPTY;
135 }
136
137 protected boolean isImage(String mimeType) {
138 return mimeType != null && mimeType.matches("image.*");
139 }
140 }