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.cache.browser.app;
35
36 import info.magnolia.module.cache.cachekey.CacheKey;
37 import info.magnolia.objectfactory.ComponentProvider;
38 import info.magnolia.ui.vaadin.integration.contentconnector.AbstractContentConnector;
39 import info.magnolia.ui.vaadin.integration.contentconnector.ContentConnectorDefinition;
40
41 import javax.inject.Inject;
42
43 import com.vaadin.v7.data.Item;
44
45
46
47
48 public class CacheBrowserContentConnector extends AbstractContentConnector {
49
50 public static final CacheKey DEFAULT_ITEM_ID = new CacheKey() {};
51
52 private CacheBrowserContainer container;
53
54 @Inject
55 public CacheBrowserContentConnector(ContentConnectorDefinition contentConnectorDefinition, ComponentProvider componentProvider) {
56 super(contentConnectorDefinition, componentProvider);
57 }
58
59 @Override
60 public String getItemUrlFragment(Object itemId) {
61 return String.valueOf(itemId.hashCode());
62 }
63
64 @Override
65 public Object getItemIdByUrlFragment(String urlFragment) {
66 if (urlFragment.equals("/")) {
67 return getDefaultItemId();
68 }
69 for (CacheKey cacheK : container.getItemIds()) {
70 if (cacheK.hashCode() == Integer.valueOf(urlFragment)) {
71 return cacheK;
72 }
73 }
74 return null;
75 }
76
77 @Override
78 public Object getDefaultItemId() {
79 return DEFAULT_ITEM_ID;
80 }
81
82 @Override
83 public Item getItem(Object itemId) {
84 return container.getItem(itemId);
85 }
86
87 @Override
88 public Object getItemId(Item item) {
89 if (!canHandleItem(item)) {
90 return null;
91 }
92 return ((CacheKeyItem) item).getItemId();
93 }
94
95 @Override
96 public boolean canHandleItem(Object itemId) {
97 return itemId instanceof CacheKey;
98 }
99
100 public void setContainer(CacheBrowserContainer container) {
101 this.container = container;
102 }
103
104 }