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.module.googlesitemap.app.subapp.sitemapdetail.virtualuris;
35
36 import info.magnolia.event.EventBus;
37 import info.magnolia.i18nsystem.SimpleTranslator;
38 import info.magnolia.module.googlesitemap.app.subapp.sitemapdetail.base.SiteMapContentView;
39 import info.magnolia.module.googlesitemap.app.subapp.sitemapdetail.base.SiteMapDetailPresenter;
40 import info.magnolia.module.googlesitemap.bean.SiteMapEntry;
41 import info.magnolia.module.googlesitemap.service.SiteMapService;
42 import info.magnolia.ui.api.app.SubAppEventBus;
43 import info.magnolia.ui.api.context.UiContext;
44
45 import java.util.Collections;
46 import java.util.List;
47
48 import javax.inject.Named;
49 import javax.jcr.Node;
50 import javax.jcr.RepositoryException;
51
52 import org.slf4j.Logger;
53 import org.slf4j.LoggerFactory;
54
55 import com.google.inject.Inject;
56
57
58
59
60 public class SiteMapVirtualUrisPresenter extends SiteMapDetailPresenter<SiteMapContentView.Listener> {
61
62 private static final String ERROR_MESSAGE = "google-sitemap.error.virtualuri";
63
64 private Logger log = LoggerFactory.getLogger(getClass());
65
66 private UiContext uiContext;
67
68 @Inject
69 public SiteMapVirtualUrisPresenter(SiteMapVirtualUrisView view, SiteMapService service, @Named(SubAppEventBus.NAME) EventBus eventBus, SimpleTranslator translator, UiContext uiContext) {
70 super(view, service, eventBus, translator);
71 this.uiContext = uiContext;
72 }
73
74 @Override
75 protected List<SiteMapEntry> fetchSiteMapEntries(Node node) {
76 try {
77 return service.getSiteMapBeanForVirtualUri(true);
78 } catch (RepositoryException e) {
79 log.error("Failed to accumulate site map beans for virtual URI's", e);
80
81 }
82 return Collections.EMPTY_LIST;
83 }
84
85 @Override
86 public String getLabel() {
87 return getTranslator().translate("siteMaps.virtualURI.label");
88 }
89
90 @Override
91 protected SiteMapContentView.Listener getListener() {
92 return this;
93 }
94 }