1 28 29 30 package com.opencms.workplace; 31 32 import org.opencms.file.CmsObject; 33 import org.opencms.main.CmsException; 34 import org.opencms.main.CmsLog; 35 36 import com.opencms.core.I_CmsSession; 37 import com.opencms.legacy.CmsXmlTemplateLoader; 38 import com.opencms.template.CmsXmlTemplateFile; 39 40 import java.util.Hashtable ; 41 import java.util.Vector ; 42 43 50 public class CmsAdminModuleAdminEdit extends CmsWorkplaceDefault { 51 52 56 private boolean checkName(String name) { 57 if(name == null || name.length() == 0 || name.trim().length() == 0) { 58 return false; 59 } 60 for(int i = 0;i < name.length();i++) { 61 char c = name.charAt(i); 62 if(((c < 'a') || (c > 'z')) && ((c < '0') || (c > '9')) && ((c < 'A') || (c > 'Z')) && (c != '-') && (c != '.') && (c != '_') && (c != '~')) { 63 return false; 64 } 65 } 66 return true; 67 } 68 69 74 private String checkType(String type, String value) { 75 type = type.toLowerCase(); 76 try { 77 if("string".equals(type)) { 78 if((value != null) && (value.indexOf("\"") < 0)) { 79 return value; 80 } 81 else { 82 return null; 83 } 84 } 85 else { 86 if("int".equals(type) || "integer".equals(type)) { 87 value = "" + Integer.parseInt(value); 88 return value; 89 } 90 else { 91 if("float".equals(type)) { 92 value = "" + Float.valueOf(value); 93 return value; 94 } 95 else { 96 if("boolean".equals(type)) { 97 value = "" + Boolean.valueOf(value); 98 return value; 99 } 100 else { 101 if("long".equals(type)) { 102 value = "" + Long.valueOf(value); 103 return value; 104 } 105 else { 106 if("double".equals(type)) { 107 value = "" + Double.valueOf(value); 108 return value; 109 } 110 else { 111 if("byte".equals(type)) { 112 value = "" + Byte.valueOf(value); 113 return value; 114 } 115 else { 116 117 return null; 119 } 120 } 121 } 122 } 123 } 124 } 125 } 126 } 127 catch(Exception exc) { 128 129 return null; 131 } 132 } 133 134 145 public byte[] getContent(CmsObject cms, String templateFile, String elementName, Hashtable parameters, String templateSelector) throws CmsException { 146 if(CmsLog.getLog(this).isDebugEnabled() && C_DEBUG) { 147 CmsLog.getLog(this).debug("Getting content of element " + ((elementName==null)?"<root>":elementName)); 148 CmsLog.getLog(this).debug("Template file is: " + templateFile); 149 CmsLog.getLog(this).debug("Selected template section is: " + ((templateSelector==null)?"<default>":templateSelector)); 150 } 151 CmsXmlTemplateFile xmlTemplateDocument = getOwnTemplateFile(cms, templateFile, elementName, parameters, templateSelector); 152 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 153 Hashtable sessionData = (Hashtable )session.getValue(CmsWorkplaceDefault.C_SESSION_MODULE_ADMIN_DATA); 154 String module = (String )sessionData.get(CmsWorkplaceDefault.C_MODULE_PACKETNAME); 155 xmlTemplateDocument.setData("packetname", module); 156 Vector paraNames = (Vector )sessionData.get(CmsWorkplaceDefault.C_SESSION_MODULE_ADMIN_PROP_NAMES); 157 Vector paraDescr = (Vector )sessionData.get(CmsWorkplaceDefault.C_SESSION_MODULE_ADMIN_PROP_DESCR); 158 Vector paraTyp = (Vector )sessionData.get(CmsWorkplaceDefault.C_SESSION_MODULE_ADMIN_PROP_TYP); 159 Vector paraVal = (Vector )sessionData.get(CmsWorkplaceDefault.C_SESSION_MODULE_ADMIN_PROP_VAL); 160 String prop = (String )parameters.get("prop"); 161 String delete = (String )parameters.get("delete"); 162 String ok = (String )parameters.get("ok"); 163 String step = (String )parameters.get("step"); 164 if((prop == null) || ("".equals(prop))) { 165 166 if((ok != null) && (!"".equals(ok))) { 168 169 String name = getStringValue((String )parameters.get("NAME")); 171 String description = getStringValue((String )parameters.get("BESCHREIBUNG")); 172 String type = "string"; 173 String value = (String )parameters.get("WERT"); 174 175 String newValue = checkType(type, value); 177 if((checkName(name)) && (newValue != null)) { 178 paraNames.addElement(name); 179 paraDescr.addElement(description); 180 paraTyp.addElement(type); 181 paraVal.addElement(newValue); 182 templateSelector = "done"; 183 } 184 else { 185 session.putValue("parametername", name); 186 session.putValue("description", description); 187 session.putValue("parametertype", type); 188 session.putValue("parametervalue", value); 189 templateSelector = "errornew"; 190 } 191 } 192 else { 193 if((step == null) || ("".equals(step))) { 194 xmlTemplateDocument.setData("paraname", ""); 195 xmlTemplateDocument.setData("paranameok", ""); 196 xmlTemplateDocument.setData("value", ""); 197 xmlTemplateDocument.setData("description", ""); 198 xmlTemplateDocument.setData("delybutton", " "); 199 } 200 else { 201 202 xmlTemplateDocument.setData("paraname", ""); 204 xmlTemplateDocument.setData("paranameok", (String )session.getValue("parametername")); 205 xmlTemplateDocument.setData("value", (String )session.getValue("parametervalue")); 206 xmlTemplateDocument.setData((String )session.getValue("parametertype"), "selected"); 207 xmlTemplateDocument.setData("description", (String )session.getValue("description")); 208 xmlTemplateDocument.setData("delybutton", " "); 209 session.removeValue("packagename"); 210 session.removeValue("parametervalue"); 211 session.removeValue("parametertype"); 212 session.removeValue("description"); 213 } 214 } 215 }else { 216 if((ok != null) && (!"".equals(ok))) { 217 218 String type = "string"; 220 String value = getStringValue((String )parameters.get("WERT")); 221 String newValue = checkType(type, value); 222 if(newValue != null) { 223 int i = paraNames.indexOf(prop); 224 paraNames.removeElementAt(i); 225 paraDescr.removeElementAt(i); 226 paraTyp.removeElementAt(i); 227 paraVal.removeElementAt(i); 228 paraNames.addElement(prop); 229 paraDescr.addElement(getStringValue((String )parameters.get("BESCHREIBUNG"))); 230 paraTyp.addElement(type); 231 paraVal.addElement(newValue); 232 templateSelector = "done"; 233 }else { 234 session.putValue("parametername", prop); 235 session.putValue("description", getStringValue((String )parameters.get("BESCHREIBUNG"))); 236 session.putValue("parametertype", type); 237 session.putValue("parametervalue", value); 238 templateSelector = "errorold"; 239 } 240 }else { 241 if((delete != null) && (!"".equals(delete))) { 242 243 int i = paraNames.indexOf(prop); 245 paraNames.removeElementAt(i); 246 paraDescr.removeElementAt(i); 247 paraTyp.removeElementAt(i); 248 paraVal.removeElementAt(i); 249 templateSelector = "done"; 250 }else { 251 252 if((step == null) || ("".equals(step))) { 254 int i = paraNames.indexOf(prop); 255 xmlTemplateDocument.setData("paraname", prop); 256 xmlTemplateDocument.setData("nameentry", prop); 257 xmlTemplateDocument.setData("value", (String )paraVal.elementAt(i)); 258 xmlTemplateDocument.setData("description", (String )paraDescr.elementAt(i)); 259 xmlTemplateDocument.setData("string", "selected"); 260 xmlTemplateDocument.setData("delybutton", xmlTemplateDocument.getProcessedDataValue("deletebutton")); 261 }else { 262 263 prop = (String )session.getValue("parametername"); 265 xmlTemplateDocument.setData("paraname", prop); 266 xmlTemplateDocument.setData("nameentry", prop); 267 xmlTemplateDocument.setData("value", (String )session.getValue("parametervalue")); 268 xmlTemplateDocument.setData("description", (String )session.getValue("description")); 269 xmlTemplateDocument.setData((String )session.getValue("parametertype"), "selected"); 270 xmlTemplateDocument.setData("delybutton", xmlTemplateDocument.getProcessedDataValue("deletebutton")); 271 session.removeValue("packagename"); 272 session.removeValue("parametervalue"); 273 session.removeValue("parametertype"); 274 session.removeValue("description"); 275 } 276 } 277 } 278 } 279 return startProcessing(cms, xmlTemplateDocument, elementName, parameters, templateSelector); 281 } 282 283 289 private String getStringValue(String param) { 290 if(param == null) { 291 return ""; 292 } 293 return param; 294 } 295 296 306 public boolean isCacheable(CmsObject cms, String templateFile, String elementName, Hashtable parameters, String templateSelector) { 307 return false; 308 } 309 } 310
| Popular Tags
|