1 30 31 package com.opencms.workplace; 32 33 import org.opencms.db.CmsUserSettings; 34 import org.opencms.file.CmsFolder; 35 import org.opencms.file.CmsGroup; 36 import org.opencms.file.CmsObject; 37 import org.opencms.file.CmsPropertyDefinition; 38 import org.opencms.file.CmsResource; 39 import org.opencms.main.CmsException; 40 import org.opencms.main.OpenCms; 41 import org.opencms.workplace.CmsWorkplace; 42 43 import com.opencms.core.I_CmsSession; 44 import com.opencms.legacy.CmsXmlTemplateLoader; 45 import com.opencms.template.A_CmsXmlContent; 46 47 import java.util.ArrayList ; 48 import java.util.Hashtable ; 49 import java.util.List ; 50 import java.util.Vector ; 51 52 61 public abstract class CmsAdminGallery extends CmsWorkplaceDefault implements I_CmsFileListUsers { 62 63 69 public String getInitial(I_CmsSession session, Hashtable parameters) { 70 String initial = (String )parameters.get(CmsWorkplaceDefault.C_PARA_INITIAL); 72 if(initial != null) { 73 session.removeValue(CmsWorkplaceDefault.C_PARA_FOLDER); 75 session.removeValue("lasturl"); 76 session.removeValue("lastgallery"); 77 session.removeValue("galleryRootFolder"); 78 } 79 return initial; 80 } 81 82 91 public String getGalleryPath(CmsObject cms, I_CmsSession session, Hashtable parameters) { 92 String foldername = (String )parameters.get(CmsWorkplaceDefault.C_PARA_FOLDER); 94 String galleryPath = getGalleryPath(); 95 96 if (foldername != null) { 97 try { 98 CmsFolder fold = cms.readFolder(foldername); 99 String parent = CmsResource.getParentFolder(cms.getSitePath(fold)); 100 if (!(parent.equals(galleryPath))) { 101 foldername = galleryPath; 102 } 103 if (fold.getState() == CmsResource.STATE_DELETED) { 104 foldername = galleryPath; 105 } 106 } catch (CmsException exc) { 107 foldername = galleryPath; 109 } 110 session.putValue("lastgallery", foldername); 111 parameters.put(CmsWorkplaceDefault.C_PARA_FOLDER, foldername); 112 } else { 113 foldername = (String ) session.getValue(CmsWorkplaceDefault.C_PARA_FOLDER); 114 String tmpFolder = (String ) session.getValue("lastgallery"); 115 116 if (foldername == null) { 117 118 if (tmpFolder != null) { 119 try { 120 cms.readFolder(tmpFolder); 122 foldername = tmpFolder; 123 } catch (CmsException e) { 124 foldername = galleryPath; 125 } 126 } else { 127 foldername = galleryPath; 128 } 129 } 130 } 131 132 session.putValue(CmsWorkplaceDefault.C_PARA_FOLDER, foldername); 134 return foldername; 135 } 136 137 149 public boolean isCacheable(CmsObject cms, String templateFile, String elementName, 150 Hashtable parameters, String templateSelector) { 151 return false; 152 } 153 154 167 168 public int modifyDisplayedColumns(CmsObject cms, int prefs) { 169 prefs = ((prefs & CmsUserSettings.FILELIST_NAME) == 0) ? prefs : (prefs - CmsUserSettings.FILELIST_NAME); 170 prefs = ((prefs & CmsUserSettings.FILELIST_TITLE) == 0) ? prefs : (prefs - CmsUserSettings.FILELIST_TITLE); 171 prefs = ((prefs & CmsUserSettings.FILELIST_TYPE) == 0) ? prefs : (prefs - CmsUserSettings.FILELIST_TYPE); 172 prefs = ((prefs & CmsUserSettings.FILELIST_SIZE) == 0) ? prefs : (prefs - CmsUserSettings.FILELIST_SIZE); 173 return prefs; 174 } 175 176 192 public Integer getGroups(CmsObject cms, CmsXmlLanguageFile lang, Vector names, 193 Vector values, Hashtable parameters) throws CmsException { 194 195 List groups = cms.getGroups(); 197 int retValue = 0; 198 199 String prompt = lang.getLanguageValue("input.promptgroup"); 201 names.addElement(prompt); 202 values.addElement("Aufforderung"); for(int z = 0;z < groups.size();z++) { 204 String name = ((CmsGroup)groups.get(z)).getName(); 205 if(! OpenCms.getDefaultUsers().getGroupGuests().equals(name)){ 206 names.addElement(name); 207 values.addElement(name); 208 } 209 } 210 return new Integer (retValue); 211 } 212 213 221 public abstract String getGalleryPath(); 222 223 233 public List getFiles(CmsObject cms) throws CmsException { 234 List galleries = (List ) new ArrayList (); 235 List folders = cms.getSubFolders(getGalleryPath()); 236 int numFolders = folders.size(); 237 for(int i = 0;i < numFolders;i++) { 238 CmsResource currFolder = (CmsResource)folders.get(i); 239 galleries.add(currFolder); 240 } 241 return galleries; 242 } 243 244 248 public Object onLoad(CmsObject cms, String tagcontent, A_CmsXmlContent doc, Object userObj) throws CmsException { 249 Hashtable parameters = (Hashtable ) userObj; 250 String folder = (String )parameters.get("folder"); 251 252 if(folder != null) { 253 String servletUrl = CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getServletUrl(); 254 return "window.top.body.admin_content.location.href='" + servletUrl + CmsWorkplace.VFS_PATH_WORKPLACE + "action/explorer_files.html?mode=listonly&folder=" + folder + "'"; 255 } else { 256 return ""; 257 } 258 } 259 260 269 public abstract String getGalleryIconPath(CmsObject cms) throws CmsException; 270 271 283 public void getCustomizedColumnValues(CmsObject cms, CmsXmlWpTemplateFile filelistTemplate, 284 CmsResource res, CmsXmlLanguageFile lang) throws CmsException { 285 getConfigFile(cms); 286 filelistTemplate.fastSetXmlData(CmsWorkplaceDefault.C_FILELIST_ICON_VALUE, 287 CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getServletUrl() + getGalleryIconPath(cms) ); 288 filelistTemplate.setData(CmsWorkplaceDefault.C_FILELIST_NAME_VALUE, res.getName()); 289 filelistTemplate.setData(CmsWorkplaceDefault.C_FILELIST_TITLE_VALUE, cms.readProperty(cms.getSitePath(res), 290 CmsPropertyDefinition.PROPERTY_TITLE)); 291 } 292 293 } 294 | Popular Tags |