1 28 29 package com.opencms.workplace; 30 31 import org.opencms.file.CmsFile; 32 import org.opencms.file.CmsFolder; 33 import org.opencms.file.CmsObject; 34 import org.opencms.file.CmsPropertyDefinition; 35 import org.opencms.file.CmsResource; 36 import org.opencms.main.CmsException; 37 import org.opencms.security.CmsPermissionSet; 38 import org.opencms.workplace.CmsWorkplace; 39 40 import java.util.ArrayList ; 41 import java.util.Iterator ; 42 import java.util.List ; 43 import java.util.Vector ; 44 45 51 52 public class CmsHelperMastertemplates { 53 54 64 public static Integer getTemplates(CmsObject cms, Vector names, Vector values, String currentTemplate) throws CmsException { 65 return getTemplates(cms, names, values, currentTemplate, 0); 66 } 67 68 79 public static Integer getTemplates(CmsObject cms, Vector names, Vector values, String currentTemplate, int defaultReturnValue) throws CmsException { 80 getTemplateElements(cms, CmsWorkplace.VFS_DIR_TEMPLATES, names, values); 82 if(currentTemplate != null) { 84 currentTemplate = cms.getRequestContext().getDirectoryTranslator().translateResource(currentTemplate); 86 for(int i = 0; i < values.size(); i++) { 87 String template = cms.getRequestContext().getDirectoryTranslator().translateResource(((String )values.get(i))); 88 if(currentTemplate.equals(template)) { 89 return new Integer (i); 91 } 92 } 93 } 94 return new Integer (defaultReturnValue); 95 } 96 97 105 public static void getTemplateElements(CmsObject cms, String subFolder, Vector names, Vector values) throws CmsException { 106 List files = (List ) new ArrayList (); 107 108 List modules = (List ) new ArrayList (); 110 modules = cms.getSubFolders(CmsWorkplace.VFS_PATH_MODULES); 111 for(int i = 0;i < modules.size();i++) { 112 List moduleTemplateFiles = (List ) new ArrayList (); 113 String folder = cms.getSitePath((CmsFolder)modules.get(i)); 114 moduleTemplateFiles = cms.getFilesInFolder(folder + subFolder); 115 for(int j = 0;j < moduleTemplateFiles.size();j++) { 116 files.add(moduleTemplateFiles.get(j)); 117 } 118 } 119 120 Iterator en = files.iterator(); 122 while(en.hasNext()) { 123 CmsFile file = (CmsFile)en.next(); 124 if(file.getState() != CmsResource.STATE_DELETED && checkVisible(cms, file)) { 125 String nicename = cms.readProperty(cms.getSitePath(file), CmsPropertyDefinition.PROPERTY_TITLE); 126 if(nicename == null) { 127 nicename = file.getName(); 128 } 129 names.addElement(nicename); 130 values.addElement(cms.getSitePath(file)); 131 } 132 } 133 134 CmsHelperMastertemplates.bubblesort(names, values); 136 137 } 139 140 148 public static boolean checkVisible(CmsObject cms, CmsResource res) throws CmsException { 149 return cms.hasPermissions(res, CmsPermissionSet.ACCESS_VIEW); 150 } 151 152 161 public static void bubblesort(Vector names, Vector data) { 162 for (int i = 0; i < names.size() - 1; i++) { 163 int len = names.size() - i - 1; 164 for (int j = 0; j < len; j++) { 165 String a = (String )names.elementAt(j); 166 String b = (String )names.elementAt(j + 1); 167 if (a.toLowerCase().compareTo(b.toLowerCase()) > 0) { 168 names.setElementAt(a, j + 1); 169 names.setElementAt(b, j); 170 a = (String )data.elementAt(j); 171 data.setElementAt(data.elementAt(j + 1), j); 172 data.setElementAt(a, j + 1); 173 } 174 } 175 } 176 } 177 } 178
| Popular Tags
|