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.resources.app.column;
35
36 import info.magnolia.i18nsystem.SimpleTranslator;
37 import info.magnolia.icons.MagnoliaIcons;
38 import info.magnolia.resourceloader.Resource;
39 import info.magnolia.resourceloader.file.FileSystemResource;
40 import info.magnolia.resourceloader.jcr.JcrResource;
41 import info.magnolia.resources.app.data.ResourceHelper;
42 import info.magnolia.ui.contentapp.configuration.column.icon.IconColumnDefinition;
43
44 import javax.inject.Inject;
45
46 import com.vaadin.ui.renderers.HtmlRenderer;
47
48
49
50
51 public class ResourceOriginColumnDefinition extends IconColumnDefinition {
52
53 public ResourceOriginColumnDefinition() {
54 setRenderer(HtmlRenderer.class);
55 setValueProvider(ValueProvider.class);
56 }
57
58
59
60
61 public static class ValueProvider extends IconColumnDefinition.IconValueProvider<Resource, ResourceOriginColumnDefinition> implements ResourceHelper {
62
63 private final SimpleTranslator i18n;
64
65 @Inject
66 public ValueProvider(ResourceOriginColumnDefinition definition, SimpleTranslator i18n) {
67 super(definition);
68 this.i18n = i18n;
69 }
70
71 @Override
72 public String apply(Resource resource) {
73 Resource firstResource = getFirstResource(resource).orElse(resource);
74 String tooltip = i18n.translate("origins." + firstResource.getOrigin().getName() + ".tooltip");
75 return "<span class=\"" + getIcon(firstResource) + "\" title=\"" + tooltip + "\"></span>";
76 }
77
78 @Override
79 protected String getIcon(Resource resource) {
80 MagnoliaIcons icon;
81 if (resource instanceof JcrResource) {
82 icon = MagnoliaIcons.FROM_JCR;
83 } else if (resource instanceof FileSystemResource) {
84 icon = MagnoliaIcons.FROM_FS;
85 } else {
86 icon = MagnoliaIcons.FROM_CLASSPATH;
87 }
88 return icon.getCssClass();
89 }
90 }
91 }