Index: magnolia-module-fckeditor/src/main/java/info/magnolia/module/fckeditor/pages/RepositoryBrowserPage.java =================================================================== --- magnolia-module-fckeditor/src/main/java/info/magnolia/module/fckeditor/pages/RepositoryBrowserPage.java (revision 25677) +++ magnolia-module-fckeditor/src/main/java/info/magnolia/module/fckeditor/pages/RepositoryBrowserPage.java (revision 25678) @@ -35,7 +35,9 @@ import info.magnolia.cms.beans.config.URI2RepositoryManager; import info.magnolia.module.ModuleRegistry; +import info.magnolia.module.admininterface.InvalidTreeHandlerException; import info.magnolia.module.admininterface.TemplatedMVCHandler; +import info.magnolia.module.admininterface.TreeHandlerManager; import info.magnolia.module.fckeditor.FCKEditorModule; import java.util.Collection; @@ -57,46 +59,63 @@ private String selectedPath; private String selectedRepository; private String absoluteURI; - + public RepositoryBrowserPage(String name, HttpServletRequest request, HttpServletResponse response) { super(name, request, response); moduleConfig = (FCKEditorModule) ModuleRegistry.Factory.getInstance().getModuleInstance(FCKEditorModule.MODULE_FCKEDITOR); } - + public String resolveAbsoluteURI() { if (StringUtils.isNotEmpty(getSelectedRepository()) && StringUtils.isNotEmpty(getSelectedPath())) { final URI2RepositoryManager manager = URI2RepositoryManager.getInstance(); - final String absoluteURI = manager.getURI(getSelectedRepository(), getSelectedPath()); + + String repo; + try + { + repo = TreeHandlerManager + .getInstance() + .getTreeHandler(getSelectedRepository(), request, response) + .getRepository(); + } + catch (InvalidTreeHandlerException e) + { + // should never happen, but let's be careful with invalid configurations + // getSelectedRepository() returns the *tree* name + repo = getSelectedRepository(); + } + + + final String absoluteURI = manager.getURI(repo, getSelectedPath()); setAbsoluteURI(absoluteURI); } else { setAbsoluteURI(StringUtils.EMPTY); } - + return "submit"; } public String select() { final URI2RepositoryManager manager = URI2RepositoryManager.getInstance(); - + if (StringUtils.isNotEmpty(absoluteURI)) { final String repository = manager.getRepository(absoluteURI); final String path = manager.getHandle(absoluteURI); - + setSelectedRepository(repository); setSelectedPath(path); } - + return "select"; } - + public Collection getRepositories() { return moduleConfig.getBrowsableRepositories(); } - + public String getSelectedPath() { return selectedPath; } - + public void setSelectedPath(String selectedPath) { this.selectedPath = selectedPath; } @@ -104,15 +123,15 @@ public String getSelectedRepository() { return selectedRepository; } - + public void setSelectedRepository(String selectedRepository) { this.selectedRepository = selectedRepository; } - + public String getAbsoluteURI() { return absoluteURI; } - + public void setAbsoluteURI(String absoluteURI) { this.absoluteURI = absoluteURI; }