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.fckeditor.pages;
35
36 import info.magnolia.cms.beans.config.URI2RepositoryManager;
37 import info.magnolia.module.ModuleRegistry;
38 import info.magnolia.module.admininterface.InvalidTreeHandlerException;
39 import info.magnolia.module.admininterface.TemplatedMVCHandler;
40 import info.magnolia.module.admininterface.TreeHandlerManager;
41 import info.magnolia.module.admininterface.AdminTreeMVCHandler;
42 import info.magnolia.module.fckeditor.FCKEditorModule;
43
44 import java.util.Collection;
45
46 import javax.servlet.http.HttpServletRequest;
47 import javax.servlet.http.HttpServletResponse;
48
49 import org.apache.commons.lang.StringUtils;
50
51
52
53
54
55
56
57 public class RepositoryBrowserPage extends TemplatedMVCHandler {
58
59 private final FCKEditorModule moduleConfig;
60 private String selectedPath;
61 private String selectedRepository;
62 private String absoluteURI;
63
64 public RepositoryBrowserPage(String name, HttpServletRequest request, HttpServletResponse response) {
65 super(name, request, response);
66 moduleConfig = (FCKEditorModule) ModuleRegistry.Factory.getInstance().getModuleInstance(FCKEditorModule.MODULE_FCKEDITOR);
67 }
68
69 public String resolveAbsoluteURI() {
70 final String treeName = getSelectedRepository();
71 if (StringUtils.isNotEmpty(treeName) && StringUtils.isNotEmpty(getSelectedPath())) {
72 final URI2RepositoryManager manager = URI2RepositoryManager.getInstance();
73
74 String repoName;
75 try {
76 final AdminTreeMVCHandler treeHandler = TreeHandlerManager.getInstance().getTreeHandler(treeName, request, response);
77 repoName = treeHandler.getRepository();
78 } catch (InvalidTreeHandlerException e) {
79
80
81 repoName = treeName;
82 }
83
84
85 final String absoluteURI = manager.getURI(repoName, getSelectedPath());
86 setAbsoluteURI(absoluteURI);
87 } else {
88 setAbsoluteURI(StringUtils.EMPTY);
89 }
90
91 return "submit";
92 }
93
94 public String select() {
95 final URI2RepositoryManager manager = URI2RepositoryManager.getInstance();
96
97 if (StringUtils.isNotEmpty(absoluteURI)) {
98 final String repository = manager.getRepository(absoluteURI);
99 final String path = manager.getHandle(absoluteURI);
100
101 setSelectedRepository(repository);
102 setSelectedPath(path);
103 }
104
105 return "select";
106 }
107
108
109 public Collection getRepositories() {
110 return moduleConfig.getBrowsableRepositories();
111 }
112
113 public String getSelectedPath() {
114 return selectedPath;
115 }
116
117 public void setSelectedPath(String selectedPath) {
118 this.selectedPath = selectedPath;
119 }
120
121
122 public String getSelectedRepository() {
123 return selectedRepository;
124 }
125
126
127 public void setSelectedRepository(String selectedRepository) {
128 this.selectedRepository = selectedRepository;
129 }
130
131 public String getAbsoluteURI() {
132 return absoluteURI;
133 }
134
135 public void setAbsoluteURI(String absoluteURI) {
136 this.absoluteURI = absoluteURI;
137 }
138 }