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.external.app.contentview.column;
35
36 import info.magnolia.cms.beans.config.MIMEMapping;
37 import info.magnolia.dam.api.Asset;
38 import info.magnolia.dam.api.Item;
39 import info.magnolia.ui.vaadin.integration.contentconnector.ContentConnector;
40 import info.magnolia.ui.workbench.column.definition.ColumnFormatter;
41
42 import javax.inject.Inject;
43
44 import org.apache.commons.lang.StringUtils;
45
46 import com.vaadin.data.util.BeanItem;
47 import com.vaadin.ui.Table;
48
49
50
51
52 public class AssetNameColumnFormatter implements ColumnFormatter {
53
54 public static final String ICON_TAG = "<span class=\"%s v-table-icon-element\"></span>";
55 private final ContentConnector contentConnector;
56 private final AssetNameColumnDefinition definition;
57
58 @Inject
59 public AssetNameColumnFormatter(AssetNameColumnDefinition definition, ContentConnector contentConnector) {
60 this.contentConnector = contentConnector;
61 this.definition = definition;
62 }
63
64 @Override
65 public Object generateCell(Table source, Object itemId, Object columnId) {
66 com.vaadin.data.Item uiItem = contentConnector.getItem(itemId);
67 if (uiItem instanceof BeanItem) {
68 Item item = ((BeanItem<Item>) uiItem).getBean();
69 if (item != null) {
70 String icon = getIcon(item);
71 return icon + item.getName();
72 }
73 }
74 return StringUtils.EMPTY;
75 }
76
77 private String getIcon(Item item) {
78 if (item.isAsset()) {
79 String mimeType = ((Asset) item).getMimeType();
80 if (StringUtils.isBlank(mimeType)) {
81 return String.format(ICON_TAG, MIMEMapping.DEFAULT_ICON_STYLE);
82 }
83 String icon = MIMEMapping.getMIMETypeIconStyle(mimeType);
84 return String.format(ICON_TAG, icon);
85 }
86 if (item.isFolder()) {
87 return String.format(ICON_TAG, definition.getFolderIcon());
88 }
89 return StringUtils.EMPTY;
90 }
91 }