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.workbench.tree;
35
36 import info.magnolia.i18nsystem.SimpleTranslator;
37 import info.magnolia.ui.workbench.column.AbstractColumnFormatter;
38 import info.magnolia.ui.workbench.column.definition.PropertyColumnDefinition;
39
40 import javax.inject.Inject;
41
42 import com.vaadin.v7.data.Property;
43 import com.vaadin.v7.ui.Table;
44
45
46
47
48 public class OriginNameColumnFormatter extends AbstractColumnFormatter<PropertyColumnDefinition> {
49
50 private static final String JCR_ORIGIN = "jcr";
51 private static final String FILESYSTEM_ORIGIN = "filesystem";
52 private static final String CLASSPATH_ORIGIN = "classpath";
53 private static final String CLASSPATH_LEGACY_ORIGIN = "classpath-legacy";
54
55 private static final String CLASSPATH_ICON = "icon-from-classpath";
56 private static final String FILESYSTEM_ICON = "icon-from-fs";
57 private static final String JCR_ICON = "icon-from-jcr";
58
59 private final SimpleTranslator i18n;
60
61 @Inject
62 public OriginNameColumnFormatter(PropertyColumnDefinition definition, SimpleTranslator i18n) {
63 super(definition);
64 this.i18n = i18n;
65 }
66
67 @Override
68 public Object generateCell(Table source, Object itemId, Object columnId) {
69 Property<String> property = source.getContainerProperty(itemId, columnId);
70 if (property != null) {
71 String originName = property.getValue();
72 String tooltip = i18n.translate("origins." + originName + ".tooltip");
73 String icon;
74 switch (originName) {
75 case JCR_ORIGIN:
76 icon = JCR_ICON;
77 break;
78 case FILESYSTEM_ORIGIN:
79 icon = FILESYSTEM_ICON;
80 break;
81 case CLASSPATH_ORIGIN:
82 case CLASSPATH_LEGACY_ORIGIN:
83 icon = CLASSPATH_ICON;
84 break;
85 default:
86 return null;
87 }
88
89 return "<span class=\"" + icon + "\" title=\"" + tooltip + "\"></span>";
90 }
91
92 return null;
93 }
94 }