1 package de.webman.form.eventhandler; 2 3 import java.util.*; 4 import java.sql.*; 5 import java.io.*; 6 import java.net.*; 7 import com.teamkonzept.web.*; 8 import com.teamkonzept.lib.*; 9 import com.teamkonzept.field.*; 10 import com.teamkonzept.field.db.TKFormDBData; 11 import com.teamkonzept.field.db.TKFormDBInterface; 12 import com.teamkonzept.db.*; 13 import com.teamkonzept.webman.mainint.*; 14 import com.teamkonzept.publishing.markups.*; 15 import com.teamkonzept.international.LanguageManager; 16 import com.teamkonzept.webman.*; 17 import com.teamkonzept.webman.db.*; 18 import com.teamkonzept.webman.mainint.*; 19 import com.teamkonzept.webman.mainint.events.*; 20 import com.teamkonzept.webman.mainint.db.*; 21 import com.teamkonzept.webman.mainint.db.queries.*; 22 import de.webman.form.Form; 23 import de.webman.form.db.FormConstants; 24 import de.webman.form.db.queries.FormExists; 25 26 32 public class CTUtils 33 implements CTParameters, 34 ParameterTypes, 35 DatabaseDefaults 36 { 37 38 41 public static final String LANGUAGE_CONTEXT = "field"; 42 43 46 public static final String PROPERTY_GROUP_FORM_PROCESSING = "FORM_PROCESSING"; 47 48 51 public static final String PROPERTY_ENABLE_SLOPPY_NAMING = "ENABLE_SLOPPY_NAMING"; 52 53 56 public static final String PROPERTY_ENABLE_UNSAFE_MODIFICATION = "ENABLE_UNSAFE_MODIFICATION"; 57 58 59 66 public static void keepCTContext (TKEvent event, TKHTMLTemplate template) 67 { 68 template.set(FORM_TYPE, event.getNotNullParameter(PARAMETER, FORM_TYPE)); 69 template.set(FORM_ID, event.getNotNullParameter(PARAMETER, FORM_ID)); 70 template.set(ISTEST, event.getNotNullParameter(PARAMETER, ISTEST)); 71 template.set(MODIFY_CONTEXT, event.getNotNullParameter(PARAMETER, MODIFY_CONTEXT)); 72 template.set(TMP_FORM_ID, event.getNotNullParameter(PARAMETER, TMP_FORM_ID)); 73 template.set(UPBASE, event.getParams().hasMultiple(PARAMETER, UPBASE) 74 ? event.getParams().get(PARAMETER, UPBASE, 0) 75 : event.getNotNullParameter(PARAMETER, UPBASE)); 76 } 77 78 85 public static void switchTest (TKHTMLTemplate template, boolean test) 86 { 87 if (test) 88 { 89 template.set(ISTEST, "testing"); 90 template.set(MODIFY_CONTEXT, CTTEST); 91 } 92 else 93 { 94 template.set(TMP_FORM_ID, EMPTY); 95 template.set(ISTEST, EMPTY); 96 template.set(MODIFY_CONTEXT, CT); 97 } 98 } 99 100 107 public static TKBaseField getStructure (int type) 108 throws TKException 109 { 110 try 111 { 112 TKFieldSwitch allSwitch = new TKFieldSwitch(TKBaseField.SUB_TYPE_KEY, new TKVector(), LanguageManager.getText(LANGUAGE_CONTEXT, "CHOICE"), TKFieldSwitch.CHECK_OPTION); 114 115 TKFieldSwitchList allSwitchList = new TKFieldSwitchList(TKBaseField.SUB_LIST_KEY, new TKVector(), LanguageManager.getText(LANGUAGE_CONTEXT, "CHOICE")); 117 118 TKVector classes = WebManThread.getClassVector(); 120 int index = 0; 121 int size = classes.size(); 122 123 while (index < size) 124 { 125 126 String id = ((String []) classes.elementAt(index++))[0]; 127 if (TKHiddenField.CLASS_ID.equals(id)) 129 { 130 continue; 131 } 132 133 141 142 TKBaseField field = (TKBaseField) TKFieldRegistry.registry.get(id); 143 TKFieldGroup group = field.getDefGroup(allSwitch, allSwitchList); 144 allSwitch.addAlternative(group); 145 allSwitchList.addAlternative(group); 146 } 147 148 TKBaseField [] definition = null; 150 String description = null; 151 switch (type) 152 { 153 case CONTENT_FORM_TYPE: 154 { 155 description = LanguageManager.getText(LANGUAGE_CONTEXT, "CONTENT_STRUCTURE"); 156 definition = new TKBaseField[] 157 { 158 new TKHiddenField(TKFieldGroup.NAME_KEY), 160 new TKInputField(TKFieldGroup.SHOW_NAME_KEY, 161 TKInputField.LARGE_DEFAULT_SIZE, 162 TKInputField.LARGE_DEFAULT_LENGTH, LanguageManager.getText(LANGUAGE_CONTEXT, "CONTENT_STRUCTURE_SHOWNAME"), TKInputField.CHECK_STRING), 163 allSwitchList 164 }; 165 166 break; 167 } 168 case STRUCTURE_FORM_TYPE: 169 { 170 description = LanguageManager.getText(LANGUAGE_CONTEXT, "SITE_STRUCTURE_PARAMETER"); 171 definition = new TKBaseField[] 172 { 173 new TKHiddenField(TKFieldGroup.NAME_KEY), 175 new TKInputField(TKFieldGroup.SHOW_NAME_KEY, 176 TKInputField.LARGE_DEFAULT_SIZE, 177 TKInputField.LARGE_DEFAULT_LENGTH, 178 LanguageManager.getText(LANGUAGE_CONTEXT, "SITE_STRUCTURE_PARAMETER_SHOWNAME"), TKInputField.CHECK_STRING), 179 allSwitchList 180 }; 181 182 break; 183 } 184 case FRAGMENT_FORM_TYPE: 185 { 186 description = LanguageManager.getText(LANGUAGE_CONTEXT, "FRAGMENT"); 187 definition = new TKBaseField[] 188 { 189 allSwitch 190 }; 191 192 break; 193 } 194 default: 195 } 197 198 return new TKFieldGroup(TKFieldGroup.CLASS_ID, new TKVector(definition), description); 199 } 200 catch (Exception x) 201 { 202 throw WebmanExceptionHandler.getException(x); 203 } 204 } 205 206 216 public static String generateFieldName (String description, int length) 217 { 218 String name = URLEncoder.encode(description); 220 221 return name.length() > length 223 ? name.substring(0, length) 224 : name; 225 } 226 227 238 public static boolean exists (Integer id, 239 String name, 240 String value) 241 throws TKException 242 { 243 try 244 { 245 TKQuery query = TKWebmanDBManager.newQuery(FormExists.class); 247 248 if (id != null) 249 { 250 query.setQueryParams(FormConstants.COLUMN_NAMES[FormConstants.FORM_ID], id); 251 } 252 253 query.setQueryParams(name, value); 254 query.execute(); 255 256 ResultSet result = query.fetchResultSet(); 258 259 if (result == null) 260 { 261 return false; 262 } 263 264 return result.next(); 266 } 267 catch (Exception e) 268 { 269 throw WebmanExceptionHandler.getException(e); 270 } 271 } 272 273 279 public static boolean isSloppyNamingEnabled () 280 { 281 try 282 { 283 return Boolean.valueOf(PropertyManager.getPropertyManager(PROPERTY_GROUP_FORM_PROCESSING) 284 .getValue(PROPERTY_ENABLE_SLOPPY_NAMING, Boolean.FALSE.toString())) 285 .booleanValue(); 286 } 287 catch (Exception e) 288 { 289 return false; 290 } 291 } 292 293 299 public static boolean isUnsafeModificationEnabled () 300 { 301 try 302 { 303 return Boolean.valueOf(PropertyManager.getPropertyManager(PROPERTY_GROUP_FORM_PROCESSING) 304 .getValue(PROPERTY_ENABLE_UNSAFE_MODIFICATION, Boolean.FALSE.toString())) 305 .booleanValue(); 306 } 307 catch (Exception e) 308 { 309 return false; 310 } 311 } 312 313 322 public static boolean isAmbiguousFormName (Integer id, 323 String name) 324 throws TKException 325 { 326 if (CTUtils.isSloppyNamingEnabled()) 327 { 328 return false; 330 } 331 332 return CTUtils.exists(id, FormConstants.COLUMN_NAMES[FormConstants.FORM_NAME], name); 334 } 335 336 345 public static boolean isAmbiguousFormDescription (Integer id, 346 String description) 347 throws TKException 348 { 349 if (CTUtils.isSloppyNamingEnabled()) 350 { 351 return false; 353 } 354 355 return CTUtils.exists(id, FormConstants.COLUMN_NAMES[FormConstants.FORM_DESCRIPTION], description); 357 } 358 359 366 public static boolean isUnsafeFormModification (TKEvent event) 367 { 368 if (CTUtils.isUnsafeModificationEnabled()) 369 { 370 return false; 372 } 373 374 String id = event.getParameter(PARAMETER, "FORM_ID"); 376 String force = event.getParameter(PARAMETER, "FORCE_MODIFICATION"); 377 378 if (id == null || id.trim().length() == 0) 379 { 380 return false; 382 } 383 384 return (force == null || force.trim().length() == 0); 386 } 387 388 394 public static TKVector getParameterList (TKHashtable parameters) 395 { 396 TKVector list = new TKVector(parameters.size()); 397 398 Enumeration keys = parameters.keys(); 399 400 while (keys.hasMoreElements()) 401 { 402 Object key = keys.nextElement(); 403 404 if (key.toString().equals("CHECKER")) 405 { 406 continue; 407 } 408 409 TKHashtable entry = new TKHashtable(2); 410 entry.put("PARAMETER_NAME", key); 411 entry.put("PARAMETER_VALUE", parameters.get(key)); 412 413 list.addElement(entry); 414 } 415 416 return list; 417 } 418 419 427 public static String getFormTypeDescription (Form form) 428 throws TKException 429 { 430 if (form != null) 431 { 432 if (form.isFormFragment()) 433 { 434 return "FRAGMENT"; 435 } 436 437 if (form.isContentForm()) 438 { 439 return "CONTENT_STRUCTURE"; 440 } 441 442 if (form.isStructureForm()) 443 { 444 return "SITE_STRUCTURE_PARAMETER"; 445 } 446 } 447 448 return "TEMPORARY_FORM"; 449 } 450 451 } 452 | Popular Tags |