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.formatter;
35
36 import info.magnolia.context.Context;
37 import info.magnolia.i18nsystem.SimpleTranslator;
38 import info.magnolia.resourceloader.Resource;
39 import info.magnolia.resourceloader.ResourceOrigin;
40 import info.magnolia.resourceloader.jcr.JcrResourceOrigin;
41 import info.magnolia.resourceloader.layered.LayeredResource;
42 import info.magnolia.ui.workbench.column.StatusColumnFormatter;
43
44 import javax.inject.Inject;
45 import javax.jcr.Item;
46 import javax.jcr.RepositoryException;
47 import javax.jcr.Session;
48
49 import com.vaadin.ui.Table;
50
51
52
53
54
55 public class ResourcesStatusColumnFormatter extends StatusColumnFormatter {
56
57 private final ResourceOrigin origin;
58 private final Context context;
59
60 @Inject
61 public ResourcesStatusColumnFormatter(ResourcesStatusColumnDefinition definition, SimpleTranslator i18n, ResourceOrigin origin, Context context) {
62 super(definition, i18n);
63 this.origin = origin;
64 this.context = context;
65 }
66
67 @Override
68 protected Item getJcrItem(Table source, Object itemId) {
69 try {
70 Session jcrSession = context.getJCRSession(JcrResourceOrigin.RESOURCES_WORKSPACE);
71 return jcrSession.getItem(itemId.toString());
72 } catch (RepositoryException e) {
73 throw new RuntimeException(e);
74 }
75 }
76
77 @Override
78 public Object generateCell(Table source, Object itemId, Object columnId) {
79 Resource resource = ((LayeredResource) origin.getByPath(itemId.toString())).getFirst();
80 boolean isPresentInJcr = resource.getOrigin() instanceof JcrResourceOrigin;
81
82 if (isPresentInJcr) {
83 return super.generateCell(source, itemId, columnId);
84 } else {
85 return null;
86 }
87 }
88 }