1 28 29 package com.opencms.workplace; 30 31 import org.opencms.file.CmsFile; 32 import org.opencms.file.CmsObject; 33 import org.opencms.file.CmsRequestContext; 34 import org.opencms.main.CmsException; 35 import org.opencms.main.OpenCms; 36 37 import com.opencms.core.I_CmsSession; 38 import com.opencms.legacy.CmsLegacyException; 39 import com.opencms.legacy.CmsXmlTemplateLoader; 40 41 import java.util.Hashtable ; 42 import java.util.Vector ; 43 44 52 public class CmsChtype extends CmsWorkplaceDefault { 53 54 55 private final static String C_RADIOSIZE = "RADIOSIZE"; 56 57 58 private Vector m_names = null; 59 60 61 private Vector m_values = null; 62 63 74 public byte[] getContent(CmsObject cms, String templateFile, String elementName, 75 Hashtable parameters, String templateSelector) 76 throws CmsException { 77 CmsRequestContext requestContext = cms.getRequestContext(); 78 I_CmsSession session = CmsXmlTemplateLoader.getSession(requestContext, true); 79 80 String template = null; 82 83 String initial = (String )parameters.get(CmsWorkplaceDefault.C_PARA_INITIAL); 85 if (initial != null) { 86 87 session.removeValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 89 session.removeValue("lasturl"); 90 } 91 92 String lasturl = getLastUrl(cms, parameters); 94 String newtype = (String )parameters.get(CmsWorkplaceDefault.C_PARA_NEWTYPE); 95 96 String filename = (String )parameters.get(CmsWorkplaceDefault.C_PARA_RESOURCE); 98 if (filename != null) { 99 session.putValue(CmsWorkplaceDefault.C_PARA_RESOURCE, filename); 100 } 101 filename = (String )session.getValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 102 CmsFile file = (CmsFile)cms.readResource(filename); 103 104 if (newtype != null) { 107 108 110 int type = OpenCms.getResourceManager().getResourceType(newtype).getTypeId(); 111 112 if (OpenCms.getWorkplaceManager().autoLockResources()) { 114 if (cms.getLock(filename).isNullLock()) { 115 cms.lockResource(filename); 117 } 118 } 119 120 cms.chtype(cms.getSitePath(file), type); 122 session.removeValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 123 124 try { 126 if (lasturl == null || "".equals(lasturl)) { 127 CmsXmlTemplateLoader.getResponse(requestContext).sendCmsRedirect(getConfigFile(cms).getWorkplaceActionPath() 128 + CmsWorkplaceAction.getExplorerFileUri(CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getOriginalRequest())); 129 } else { 130 CmsXmlTemplateLoader.getResponse(requestContext).sendRedirect(lasturl); 131 } 132 } catch (Exception e) { 133 throw new CmsLegacyException("Redirect fails :" + getConfigFile(cms).getWorkplaceActionPath() 134 + CmsWorkplaceAction.getExplorerFileUri(CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getOriginalRequest()), e); 135 } 136 return null; 137 } 138 CmsXmlWpTemplateFile xmlTemplateDocument = new CmsXmlWpTemplateFile(cms, templateFile); 139 140 xmlTemplateDocument.setData("OWNER", "" ); 142 xmlTemplateDocument.setData("GROUP", "" ); 143 xmlTemplateDocument.setData("FILENAME", file.getName()); 144 getResources(cms, null, null, null, null, null); 145 if (m_names != null) { 146 xmlTemplateDocument.setData(C_RADIOSIZE, new Integer (m_names.size()).toString()); 147 } 148 149 return startProcessing(cms, xmlTemplateDocument, "", parameters, template); 151 } 152 153 166 public void getResources(CmsObject cms, CmsXmlLanguageFile lang, Vector names, 167 Vector values, Vector descriptions, Hashtable parameters) 168 throws CmsException { 169 170 if(m_names == null || m_values == null) { 172 m_names = new Vector (); 173 m_values = new Vector (); 174 CmsXmlWpConfigFile configFile = new CmsXmlWpConfigFile(cms); 175 configFile.getWorkplaceIniData(m_names, m_values, "RESOURCETYPES", "RESOURCE"); 176 } 177 178 if(names == null) names = new Vector (); 181 if(values == null) values = new Vector (); 182 if(descriptions == null) descriptions = new Vector (); 183 184 int numViews = m_names.size(); 187 for(int i = 0;i < numViews;i++) { 188 String loopValue = (String )m_values.elementAt(i); 189 String loopName = (String )m_names.elementAt(i); 190 values.addElement(loopValue); 191 names.addElement("file_" + loopName); 192 String descr; 193 if(lang != null) { 194 descr = lang.getLanguageValue("fileicon." + loopName); 195 } 196 else { 197 descr = loopName; 198 } 199 descriptions.addElement(descr); 200 } 201 } 202 203 214 public boolean isCacheable(CmsObject cms, String templateFile, String elementName, 215 Hashtable parameters, String templateSelector) { 216 return false; 217 } 218 } 219 | Popular Tags |