1 package com.teamkonzept.webman.mainint; 2 3 import com.teamkonzept.web.*; 4 import com.teamkonzept.field.*; 5 import com.teamkonzept.webman.*; 6 import com.teamkonzept.webman.attr.*; 7 8 import com.teamkonzept.lib.*; 9 import com.teamkonzept.publishing.markups.*; 10 11 import de.webman.content.eventhandler.ContentContext; 12 import java.util.*; 13 import javax.servlet.http.*; 14 18 public class TKWMAttrEdit { 19 20 TKHttpInterface httpInterface; 22 23 public TKVector diagnostics; 24 public TKVector hints; 25 public TKParams params; 26 TKEvent evt; 27 28 40 41 public TKWMAttrEdit(TKEvent _evt) 42 { 43 evt = _evt; 44 httpInterface = evt.getHttpInterface(); 45 params = evt.getParams(); 46 } 47 48 public void addDiagnostic (String diag) { 49 50 if (diag == null) return; 51 52 if (diagnostics == null) diagnostics = new TKVector(); 53 diagnostics.addElement(diag); 54 } 55 56 public boolean hasDiagnostics () { 57 58 return (diagnostics != null) && (diagnostics.size() > 0); 59 } 60 61 public void addHint (String hint) { 62 63 if (hint == null) return; 64 65 if (hints == null) hints = new TKVector(); 66 hints.addElement(hint); 67 } 68 69 public boolean hasHints () { 70 71 return (hints != null) && (hints.size() > 0); 72 } 73 74 public void scanFields (TKHashtable fieldLookup) { 75 76 ContentContext.scanFields (fieldLookup,params.getClass ("PAR")); 77 } 78 79 80 public void parseFields (TKHashtable fieldLookup, TKVector fieldList) { 81 82 if (fieldList == null) return; 83 84 TKHashtable lookup = params.getClass ("CA_PARSE"); 85 if (lookup == null) return; 86 87 Enumeration e = lookup.keys(); 88 while ((e != null) && e.hasMoreElements()) { 89 90 String name = (String ) e.nextElement(); 91 if (name == null) continue; 92 93 String text = params.get("PAR",name); 94 if (text == null) continue; 95 96 TKWMAttrText list = new TKWMAttrText (name,text,fieldLookup,params.getClass ("PAR")); 97 fieldList.addElement (list); 98 } 99 } 100 101 public boolean displayLinks() throws Throwable  102 { 103 111 136 137 diagnostics = null; 138 hints = null; 139 140 try { 141 TKMarkupAdmin.setup(); 142 143 TKHashtable fieldLookup = new TKHashtable(); 144 TKVector fieldList = new TKVector(); 145 146 scanFields (fieldLookup); 147 parseFields (fieldLookup,fieldList); 148 149 TKHTMLTemplate edit = evt.getPrepHTMLTemplate( "ce_contentAttr.tmpl" ); 150 TKWMAttrTextIterator iterator = new TKWMAttrTextIterator (fieldList,null); 151 152 edit.setListIterator( iterator ); 153 evt.finishTemplate(edit); 154 155 } catch ( Throwable th ) { 156 throw new Error ( th.getMessage() ); 158 } 159 160 return true; 161 } 162 163 public boolean doMEFrames() throws Throwable  164 { 165 diagnostics = null; 166 hints = null; 167 168 try { 169 TKMarkupAdmin.setup(); 170 171 TKHTMLTemplate frame = evt.getPrepHTMLTemplate( "f_me.tmpl" ); 172 173 evt.finishTemplate(frame); 174 } catch( Throwable th ) { 175 throw new Error ( th.getMessage() ); 177 } 178 179 return true; 180 } 181 182 public boolean displayMarkupList() throws Throwable  183 { 184 diagnostics = null; 185 hints = null; 186 187 try { 188 TKMarkupAdmin.setup(); 189 TKHTMLTemplate edit = evt.getPrepHTMLTemplate( "me_markups.tmpl" ); 190 191 if (params.get("ME_RELOAD","ME_SHOWLIST") != null) TKMarkupAdmin.load(); 192 else if (params.get("ME_CRCONTROL","ME_SHOWLIST") != null) setCrControl(edit); 193 else TKMarkupAdmin.setup(); 194 195 displayCrControl (edit); 196 197 TKWMMarkupListIterator atomsIterator = 198 new TKWMMarkupListIterator ("ME_ATOM_MARKUP",TKMarkupDefinition.allAtomMarkups(),null); 199 200 TKWMMarkupListIterator iterator = 201 new TKWMMarkupListIterator (TKMarkupDefinition.allMarkups(),atomsIterator); 202 203 edit.setListIterator( iterator ); 204 evt.finishTemplate(edit); 205 } catch( Throwable th ) { 206 throw new Error ( th.getMessage() ); 208 } 209 210 return true; 211 } 212 213 public void displayCrControl (TKHTMLTemplate edit) throws Throwable { 214 215 TKMarkupStatics statics = TKMarkupStatics.setup(); 216 217 boolean doConversion = TKMarkupDefinition.doCrConversion (statics); 218 String crMarkup = TKMarkupDefinition.crMarkup (statics); 219 String crcrMarkup = TKMarkupDefinition.crcrMarkup (statics); 220 if (doConversion) 221 edit.set ("CR_CONVERT",new Boolean (doConversion)); 222 if (crMarkup != null) edit.set ("CR_MARKUP",crMarkup); 223 if (crcrMarkup != null) edit.set ("CRCR_MARKUP",crcrMarkup); 224 } 225 226 public void setCrControl (TKHTMLTemplate edit) throws Throwable 227 { 228 String doConversionStr = params.get("PAR","CR_CONVERT"); 229 boolean doConversion = doConversionStr != null && !doConversionStr.trim().equalsIgnoreCase ("FALSE"); 230 231 String crMarkup = params.get("PAR","CR_MARKUP"); 232 String crcrMarkup = params.get("PAR","CRCR_MARKUP"); 233 234 TKMarkupDefinition.saveCrControl (doConversion,crMarkup,crcrMarkup); 235 } 236 237 public TKMarkupDefinition loadMarkupDef (TKHTMLTemplate edit) throws Throwable { 238 239 String markupName = params.get("PAR","MARKUP_NAME"); 240 241 if ((markupName == null) || (markupName.length() == 0)) { 242 243 addDiagnostic ("Bitte Markup ausw�hlen"); 244 return null; 245 } 246 247 TKMarkupDefinition markup = TKMarkupDefinition.lookup(markupName); 248 if (markup == null) addDiagnostic ("Markup '"+markupName+"' nicht definiert"); 249 250 edit.set( "MARKUP_OLD_NAME", markupName); 251 if (markup != null) edit.set( "MARKUP_OLD_ID", new Integer (markup.id)); 252 253 return markup; 254 } 255 256 public TKMarkupDefinition updateMarkupDef ( 257 TKHTMLTemplate edit, String action, String indexStr) throws Throwable 258 { 259 260 String markupName = params.get("PAR","MARKUP_NAME"); 261 String markupOldName = params.get("PAR","MARKUP_OLD_NAME"); 262 String markupOldId = params.get("PAR","MARKUP_OLD_ID"); 263 String markupInfo = params.get("PAR","MARKUP_INFO"); 264 String isAtomStr = params.get("PAR","MARKUP_ISATOM"); 265 String idParName = params.get("PAR","MARKUP_ID_PARAM"); 266 267 if ((markupOldName != null) && (markupOldName.length() != 0)) 268 edit.set( "MARKUP_OLD_NAME", markupOldName); 269 270 if ((markupName == null) || (markupName.length() == 0)) { 271 272 addDiagnostic ("Bitte Markup ausw�hlen"); 273 274 } else if ((markupOldName != null) && (markupOldName.length() != 0)) { 275 276 if ((action != null) && action.trim().equalsIgnoreCase("DEL_MARKUP")) { 277 278 markupName = markupOldName; 279 280 } else if (TKMarkupDefinition.lookup (markupName) != null) { 281 282 if (!markupOldName.equalsIgnoreCase(markupName) || 283 ((action != null) && action.trim().equalsIgnoreCase("SAVEAS"))) 284 addDiagnostic ("Markname "+markupName+" existiert schon, ggf. l�schen"); 285 286 } else addHint ("Markup '"+markupName+"' ist neu"); 287 288 289 } else if ((action != null) && action.trim().equalsIgnoreCase("DEL_MARKUP")) { 290 291 addDiagnostic ("Bitte erst Markup ausw�hlen"); 292 293 } else if (TKMarkupDefinition.lookup (markupName) != null) { 294 295 addDiagnostic ("Markname "+markupName+" existiert schon, ggf. l�schen"); 296 297 } else addHint ("Markup '"+markupName+"' ist neu"); 298 299 if ((markupOldId != null) && (markupOldId.length() != 0)) 300 edit.set( "MARKUP_OLD_ID", markupOldId); 301 302 int markupId = (markupOldId != null) && (markupOldId.length() != 0) ? Integer.parseInt (markupOldId) : -1; 303 if ((action != null) && action.trim().equalsIgnoreCase("SAVEAS")) markupId = -1; 304 305 TKMarkupDefinition newDefinition = new TKMarkupDefinition 306 (markupId,markupName,null, 307 isAtomStr != null && !isAtomStr.trim().equalsIgnoreCase ("FALSE"), 308 markupInfo,null); 309 310 TKHashtable fieldLookup = new TKHashtable(); 311 scanFields (fieldLookup); 312 313 TKHashtable subFieldLookup = (TKHashtable) fieldLookup.get("MARKUP_PARAMS"); 314 TKHashtable paramIndex = new TKHashtable (); 315 316 int index = 1; 317 318 Enumeration subFields = subFieldLookup != null ? subFieldLookup.keys() : null; 319 while ((subFields != null) && subFields.hasMoreElements()) { 320 321 String sub = (String ) subFields.nextElement(); 322 if (sub == null) continue; 323 324 if ((action != null) && (action.trim().equalsIgnoreCase("DEL")) && 325 (indexStr != null) && (indexStr.trim().equals(sub.trim()))) continue; 326 327 String paramFieldName = (String ) subFieldLookup.get(sub); 328 if (paramFieldName == null) continue; 329 330 TKHashtable paramFieldLookup = (TKHashtable) fieldLookup.get(paramFieldName); 331 if (paramFieldLookup == null) continue; 332 333 String paramName = null; 334 String defName = null; 335 String defaultValue = null; 336 337 String isOptionalStr = null; 338 String useDefaultStr = null; 339 String editableStr = null; 340 341 String fullPath = (String ) paramFieldLookup.get("PARAM_NAME"); 342 if (fullPath != null) paramName = params.get("PAR",fullPath); 343 344 fullPath = (String ) paramFieldLookup.get("DEFINITION_NAME"); 345 if (fullPath != null) defName = params.get("PAR",fullPath); 346 347 fullPath = (String ) paramFieldLookup.get("DEFAULT_VALUE"); 348 if (fullPath != null) defaultValue = params.get("PAR",fullPath); 349 350 fullPath = (String ) paramFieldLookup.get("IS_OPTIONAL"); 351 if (fullPath != null) isOptionalStr = params.get("PAR",fullPath); 352 353 fullPath = (String ) paramFieldLookup.get("USE_DEFAULT"); 354 if (fullPath != null) useDefaultStr = params.get("PAR",fullPath); 355 356 fullPath = (String ) paramFieldLookup.get("EDITABLE"); 357 if (fullPath != null) editableStr = params.get("PAR",fullPath); 358 359 if ((action != null) && (action.trim().equalsIgnoreCase("DEF")) && 360 (indexStr != null) && (indexStr.trim().equals(sub.trim()))) { 361 362 String newDefintion = params.get("PAR","MARKUP_PARAM_DEF_NAME"); 363 364 if ((newDefintion != null) && (newDefintion.length() > 0)) 365 defName = newDefintion; 366 } 367 368 try { 369 TKMarkupParamCall paramDef = 370 new TKMarkupParamCall ( 371 paramName,defName, 372 isOptionalStr != null && !isOptionalStr.trim().equalsIgnoreCase ("FALSE"), 373 useDefaultStr != null && !useDefaultStr.trim().equalsIgnoreCase ("FALSE"), 374 editableStr != null && !editableStr.trim().equalsIgnoreCase ("FALSE"), 375 defaultValue); 376 377 if (newDefinition.lookupParam (paramName) != null) 378 addDiagnostic ("Zwei Parameter gleichen Namens wurden zusammengef�hrt, "+ 379 "evtl. auf vorheriges Formular zur�ckgreifen"); 380 381 TKMarkupParamCall doublette = (TKMarkupParamCall) paramIndex.get (defName); 382 if (doublette != null) 383 addDiagnostic ("Zwei verschiedene Parameter '"+paramName+"' und '"+ 384 doublette.name+"' verwenden die gleiche Vorlage '"+ 385 defName+"', "+"evtl. auf vorheriges Formular zur�ckgreifen"); 386 387 paramIndex.put (defName,paramDef); 388 389 newDefinition.defineParam(paramDef); 390 391 if ((paramName != null) && (paramName.length() > 0) && 392 paramName.equalsIgnoreCase(idParName)) 393 394 newDefinition.setIdPar (paramDef); 395 396 } catch (Throwable th) { 397 398 String msg = th.getMessage(); 399 if (msg == null) msg = "Unbekannter Fehler"; 400 addDiagnostic ("Fehler: "+msg); 401 402 if ((paramName == null) || (paramName.length() == 0)) { 403 404 while (newDefinition.lookupParam("AAA"+index) != null) index++; 405 406 paramName="AAA"+index; 407 addDiagnostic ("Parameter '"+paramName+"' wurde automatisch benannt,"+ 408 " bitte eigenen Namen w�hlen"); 409 410 index++; 411 } 412 413 TKMarkupParamCall paramDef = 414 TKMarkupParamCall.makeDummy ( 415 paramName,defName, 416 isOptionalStr != null && !isOptionalStr.trim().equalsIgnoreCase ("FALSE"), 417 useDefaultStr != null && !useDefaultStr.trim().equalsIgnoreCase ("FALSE"), 418 editableStr != null && !editableStr.trim().equalsIgnoreCase ("FALSE"), 419 defaultValue); 420 421 newDefinition.defineParam(paramDef); 422 423 if ((paramName != null) && (paramName.length() > 0) && 424 paramName.equalsIgnoreCase(idParName)) 425 426 newDefinition.setIdPar (paramDef); 427 } 428 } 429 430 if ((action != null) && action.trim().equalsIgnoreCase("ADD")) { 431 432 while (newDefinition.lookupParam("AAA"+index) != null) index++; 433 434 newDefinition.defineParam( 435 TKMarkupParamCall.makeDummy ("AAA"+index,"",false,false,false,null)); 436 437 addDiagnostic ("Parameter 'aaa"+index+"' wurde eingef�gt und automatisch benannt,"+ 438 " bitte eigenen Namen w�hlen"); 439 440 index++; 441 } 442 443 return newDefinition; 444 } 445 446 447 public TKMarkupDefinition removeParam (TKHTMLTemplate edit) throws Throwable 448 { 449 return updateMarkupDef (edit,"DEL",params.get("ME_REMOVE_PAR","ME_MARKUP_DEFINITION")); 450 } 451 452 public TKMarkupDefinition selectParDef (TKHTMLTemplate edit) throws Throwable 453 { 454 return updateMarkupDef (edit,"DEF",params.get("ME_SELECT_PARDEF","ME_MARKUP_DEFINITION")); 455 } 456 457 public TKMarkupDefinition addParam (TKHTMLTemplate edit) throws Throwable 458 { 459 return updateMarkupDef (edit,"ADD",null); 460 } 461 462 public TKMarkupDefinition saveMarkupDef (TKHTMLTemplate edit, String action) throws Throwable 463 { 464 TKMarkupDefinition definition = updateMarkupDef (edit,action,null); 465 466 if (hasDiagnostics()) addHint ("Sicherung wurde NICHT durchgef�hrt, siehe Meldungen"); 467 else if (definition == null) addHint ("Sicherung wurde NICHT durchgef�hrt, Grund unklar"); 468 else try 469 { 470 String markupOldName = params.get("PAR","MARKUP_OLD_NAME"); 471 if ((markupOldName == null) || (markupOldName.length() == 0) || 472 !markupOldName.equalsIgnoreCase(definition.name)) edit.set( "DO_DIR",Boolean.TRUE); 473 474 edit.set( "MARKUP_OLD_NAME", definition.name); 475 476 definition.save(); 477 478 edit.set( "MARKUP_OLD_ID", new Integer (definition.id)); 479 addHint ("Sicherung wurde durchgef�hrt"); 480 481 } catch (Throwable th) { 482 483 String msg = th.getMessage(); 484 if (msg == null) msg = "Unbekannter Fehler"; 485 addHint ("Sicherung wurde NICHT durchgef�hrt, siehe Meldungen"); 486 addDiagnostic ("Fehler: "+msg); 487 } 488 489 return definition; 490 } 491 492 493 public boolean displayMarkupDef() throws Throwable { 494 495 diagnostics = null; 496 hints = null; 497 498 try { 499 TKMarkupAdmin.setup(); 500 501 TKHTMLTemplate edit = evt.getPrepHTMLTemplate( "me_mdef.tmpl" ); 502 503 TKMarkupDefinition definition = 504 params.get("ME_LOAD","ME_MARKUP_DEFINITION") != null ? loadMarkupDef(edit) : 505 params.get("ME_UPDATE","ME_MARKUP_DEFINITION") != null ? updateMarkupDef(edit,null,null) : 506 params.get("ME_SAVE","ME_MARKUP_DEFINITION") != null ? saveMarkupDef(edit,null) : 507 params.get("ME_SAVEAS","ME_MARKUP_DEFINITION") != null ? saveMarkupDef(edit,"SAVEAS") : 508 params.get("ME_REMOVE_PAR","ME_MARKUP_DEFINITION") != null ? removeParam(edit) : 509 params.get("ME_SELECT_PARDEF","ME_MARKUP_DEFINITION") != null ? selectParDef(edit) : 510 params.get("ME_NEW_PAR","ME_MARKUP_DEFINITION") != null ? addParam(edit) : 511 params.get("ME_DELETE","ME_MARKUP_DEFINITION") != null ? deleteMarkupDef(edit) : 512 null; 513 514 TKWMMarkupDefinitionIterator iterator = 515 new TKWMMarkupDefinitionIterator (edit,definition,diagnostics,hints,null); 516 517 edit.setListIterator( iterator ); 518 evt.finishTemplate(edit); 519 } catch( Throwable th ) { 520 throw new Error ( th.getMessage() ); 522 } 523 524 return true; 525 } 526 527 public TKMarkupDefinition deleteMarkupDef (TKHTMLTemplate edit) throws Throwable { 528 529 TKMarkupDefinition definition = updateMarkupDef (edit,"DEL_MARKUP",null); 530 531 if (hasDiagnostics()) addHint ("L�schung wurde NICHT durchgef�hrt, siehe Meldungen"); 532 533 else if ((definition == null) || (definition.name == null) || (definition.id < 0)) 534 addHint ("L�schung wurde NICHT durchgef�hrt, Objekt undefiniert"); 535 else try { 536 edit.set( "DO_DIR",Boolean.TRUE); 537 definition.delete(); 538 addHint ("L�schung wurde durchgef�hrt"); 539 540 } catch (Throwable th) { 541 542 String msg = th.getMessage(); 543 if (msg == null) msg = "Unbekannter Fehler"; 544 addHint ("L�schung wurde NICHT durchgef�hrt, siehe Meldungen"); 545 addDiagnostic ("Fehler: "+msg); 546 } 547 548 return definition; 549 } 550 551 public boolean deleteMarkupDef() throws Throwable { 552 553 diagnostics = null; 554 hints = null; 555 556 try { 557 TKMarkupAdmin.setup(); 558 559 String markupName = params.get("PAR","MARKUP_NAME"); 560 if (markupName != null) { 561 TKMarkupDefinition markup = TKMarkupDefinition.lookup (markupName); 562 if (markup != null) markup.delete(); 563 } 564 565 return displayMarkupList(); 566 567 } catch( Throwable th ) { 568 569 throw new Error ( th.getMessage() ); 571 } 572 } 573 574 public boolean doMEParamFrames() throws Throwable  575 { 576 diagnostics = null; 577 hints = null; 578 579 try { 580 TKMarkupAdmin.setup(); 581 582 TKHTMLTemplate frame = evt.getPrepHTMLTemplate( "f_mpe.tmpl" ); 583 584 evt.finishTemplate(frame); 585 586 } catch( Throwable th ) { 587 throw new Error ( th.getMessage() ); 589 } 590 591 return true; 592 } 593 594 public boolean displayParamList() throws Throwable  595 { 596 diagnostics = null; 597 hints = null; 598 599 try { 600 if (params.get("ME_RELOAD","ME_SHOW_PARAMS") != null) TKMarkupAdmin.load(); 601 else TKMarkupAdmin.setup(); 602 603 TKHTMLTemplate edit = evt.getPrepHTMLTemplate( "me_markup_params.tmpl" ); 604 TKWMMarkupParamListIterator iterator = 605 new TKWMMarkupParamListIterator (TKMarkupParamDefinition.allParams(),null); 606 607 edit.setListIterator( iterator ); 608 evt.finishTemplate(edit); 609 610 } catch( Throwable th ) { 611 throw new Error ( th.getMessage() ); 613 } 614 615 return true; 616 } 617 618 public TKMarkupParamDefinition loadMarkupParamDef (TKHTMLTemplate edit) throws Throwable { 619 620 String paramName = params.get("PAR","PARAM_NAME"); 621 622 if ((paramName == null) || (paramName.length() == 0)) { 623 624 addDiagnostic ("Bitte Markup-Parameter ausw�hlen"); 625 return null; 626 } 627 628 TKMarkupParamDefinition param = TKMarkupParamDefinition.lookup(paramName); 629 if (param == null) addDiagnostic ("Markup-Parameter '"+paramName+"' nicht definiert"); 630 631 edit.set( "PARAM_OLD_NAME", paramName); 632 if (param != null) edit.set( "PARAM_OLD_ID", new Integer (param.id)); 633 634 return param; 635 } 636 637 public TKMarkupParamDefinition updateMarkupParamDef ( 638 TKHTMLTemplate edit, String action) throws Throwable { 639 640 String paramName = params.get("PAR","PARAM_NAME"); 641 String paramOldName = params.get("PAR","PARAM_OLD_NAME"); 642 String paramOldId = params.get("PAR","PARAM_OLD_ID"); 643 String defaultValue = params.get("PAR","DEFAULT_VALUE"); 644 String typeStr = params.get("PAR","PARAM_TYPE"); 645 String isCaseSensitive = params.get("PAR","PARAM_IS_CASE_SENSITIVE"); 646 647 if ((paramOldName != null) && (paramOldName.length() != 0)) 648 edit.set( "PARAM_OLD_NAME", paramOldName); 649 650 if ((paramName == null) || (paramName.length() == 0)) { 651 652 addDiagnostic ("Bitte Markup-Parameter ausw�hlen"); 653 654 } else if ((paramOldName != null) && (paramOldName.length() != 0)) { 655 656 if ((action != null) && action.trim().equalsIgnoreCase("DEL")) { 657 658 paramName = paramOldName; 659 660 } else if (TKMarkupParamDefinition.lookup (paramName) != null) { 661 662 if (!paramOldName.equalsIgnoreCase(paramName) || 663 ((action != null) && action.trim().equalsIgnoreCase("SAVEAS"))) 664 addDiagnostic ("Markup-Parameter "+paramName+" existiert schon, ggf. l�schen"); 665 666 } else addHint ("Markup-Parameter '"+paramName+"' ist neu"); 667 668 } else if ((action != null) && action.trim().equalsIgnoreCase("DEL_MARKUP")) { 669 670 addDiagnostic ("Bitte erst Markup-Parameter ausw�hlen"); 671 672 } else if (TKMarkupParamDefinition.lookup (paramName) != null) { 673 674 addDiagnostic ("Markup-Parameter "+paramName+" existiert schon, ggf. l�schen"); 675 676 } else addHint ("Markup-Parameter '"+paramName+"' ist neu"); 677 678 if ((paramOldId != null) && (paramOldId.length() != 0)) 679 edit.set( "PARAM_OLD_ID", paramOldId); 680 681 if (TKMarkupParamClass.lookup (typeStr) == null) { 682 683 addDiagnostic ("Fehler: Parameter-Typ '"+typeStr+"' undefiniert"); 684 typeStr = TKMarkupParamDefinition.defaultType(); 685 } 686 687 int paramId = (paramOldId != null) && (paramOldId.length() != 0) ? Integer.parseInt (paramOldId) : -1; 688 if ((action != null) && action.trim().equalsIgnoreCase("SAVEAS")) paramId = -1; 689 690 TKMarkupParamDefinition newDefinition = new TKMarkupParamDefinition 691 (paramId,paramName,typeStr, 692 isCaseSensitive != null && !isCaseSensitive.trim().equalsIgnoreCase ("FALSE"), 693 defaultValue,null); 694 695 TKHashtable fieldLookup = new TKHashtable(); 696 scanFields (fieldLookup); 697 698 TKHashtable subFieldLookup = (TKHashtable) fieldLookup.get("OPTION_LIST"); 699 TKVector optionList = null; 700 701 if ((action != null) && action.trim().equalsIgnoreCase("ADD")) { 702 703 if (optionList == null) optionList = new TKVector(); 704 optionList.addElement (""); 705 } 706 707 Enumeration subFields = subFieldLookup != null ? subFieldLookup.keys(): null; 708 while ((subFields != null) && subFields.hasMoreElements()) { 709 710 String sub = (String ) subFields.nextElement(); 711 if (sub == null) continue; 712 713 if ((action != null) && (action.trim().equals(sub.trim()))) continue; 714 715 String optionFieldName = (String ) subFieldLookup.get(sub); 716 if (optionFieldName == null) continue; 717 718 TKHashtable optionFieldLookup = (TKHashtable) fieldLookup.get(optionFieldName); 719 if (optionFieldLookup == null) continue; 720 721 String option = null; 722 723 String fullPath = (String ) optionFieldLookup.get("VALUE_OPTION"); 724 if (fullPath != null) option = params.get("PAR",fullPath); 725 726 if (option != null) { 727 728 if (optionList == null) optionList = new TKVector(); 729 optionList.addElement (option); 730 } 731 732 } 733 734 if (optionList != null) newDefinition.setOptions (optionList); 735 736 return newDefinition; 737 } 738 739 public TKMarkupParamDefinition removeOption (TKHTMLTemplate edit) throws Throwable { 740 741 return updateMarkupParamDef (edit,params.get("ME_REMOVE_PAR_OPTION","ME_PARAM_DEFINITION")); 742 } 743 744 public TKMarkupParamDefinition addOption (TKHTMLTemplate edit) throws Throwable { 745 746 return updateMarkupParamDef (edit,"ADD"); 747 } 748 749 public TKMarkupParamDefinition saveMarkupParamDef (TKHTMLTemplate edit, String action) throws Throwable { 750 751 TKMarkupParamDefinition definition = updateMarkupParamDef (edit,action); 752 753 if (hasDiagnostics()) addHint ("Sicherung wurde NICHT durchgef�hrt, siehe Meldungen"); 754 else if (definition == null) addHint ("Sicherung wurde NICHT durchgef�hrt, Grund unklar"); 755 else try { 756 String paramOldName = params.get("PAR","PARAM_OLD_NAME"); 757 if ((paramOldName == null) || (paramOldName.length() == 0) || 758 !paramOldName.equalsIgnoreCase(definition.name)) edit.set( "DO_DIR",Boolean.TRUE); 759 760 edit.set( "PARAM_OLD_NAME", definition.name); 761 762 definition.save(); 763 764 edit.set( "PARAM_OLD_ID", new Integer (definition.id)); 765 addHint ("Sicherung wurde durchgef�hrt"); 766 767 } catch (Throwable th) { 768 769 String msg = th.getMessage(); 770 if (msg == null) msg = "Unbekannter Fehler"; 771 addHint ("Sicherung wurde NICHT durchgef�hrt, siehe Meldungen"); 772 addDiagnostic ("Fehler: "+msg); 773 } 774 775 return definition; 776 } 777 778 779 public boolean displayParamDef() throws Throwable { 780 781 diagnostics = null; 782 hints = null; 783 784 try { 785 TKMarkupAdmin.setup(); 786 787 TKHTMLTemplate edit = evt.getPrepHTMLTemplate( "me_pdef.tmpl" ); 788 789 TKMarkupParamDefinition definition = 790 params.get("ME_LOAD","ME_PARAM_DEFINITION") != null ? loadMarkupParamDef(edit) : 791 params.get("ME_DELETE","ME_PARAM_DEFINITION") != null ? deleteMarkupParamDef(edit) : 792 params.get("ME_UPDATE","ME_PARAM_DEFINITION") != null ? updateMarkupParamDef(edit,null) : 793 params.get("ME_SAVE","ME_PARAM_DEFINITION") != null ? saveMarkupParamDef(edit,null) : 794 params.get("ME_SAVEAS","ME_PARAM_DEFINITION") != null ? saveMarkupParamDef(edit,"SAVEAS") : 795 params.get("ME_REMOVE_PAR_OPTION","ME_PARAM_DEFINITION") != null ? removeOption(edit) : 796 params.get("ME_NEW_VALUE_OPTION","ME_PARAM_DEFINITION") != null ? addOption(edit) : 797 null; 798 799 TKWMMarkupParamDefinitionIterator iterator = 800 new TKWMMarkupParamDefinitionIterator (edit,definition,diagnostics,hints,null); 801 802 edit.setListIterator( iterator ); 803 evt.finishTemplate(edit); 804 805 } catch( Throwable th ) { 806 throw new Error ( th.getMessage() ); 808 } 809 810 return true; 811 } 812 813 public TKMarkupParamDefinition deleteMarkupParamDef (TKHTMLTemplate edit) throws Throwable { 814 815 TKMarkupParamDefinition definition = updateMarkupParamDef (edit,"DEL"); 816 817 if (hasDiagnostics()) addHint ("L�schung wurde NICHT durchgef�hrt, siehe Meldungen"); 818 819 else if ((definition == null) || (definition.name == null) || (definition.id < 0)) 820 addHint ("L�schung wurde NICHT durchgef�hrt, Objekt undefiniert"); 821 822 else try { 823 edit.set( "DO_DIR",Boolean.TRUE); 824 definition.delete(); 825 addHint ("L�schung wurde durchgef�hrt"); 826 827 } catch (Throwable th) { 828 829 String msg = th.getMessage(); 830 if (msg == null) msg = "Unbekannter Fehler"; 831 addHint ("L�schung wurde NICHT durchgef�hrt, siehe Meldungen"); 832 addDiagnostic ("Fehler: "+msg); 833 } 834 835 return definition; 836 } 837 838 public boolean deleteMarkupParamDef() throws Throwable { 839 840 diagnostics = null; 841 hints = null; 842 843 try { 844 TKMarkupAdmin.setup(); 845 846 String paramName = params.get("PAR","PARAM_NAME"); 847 if (paramName != null) { 848 TKMarkupParamDefinition param = TKMarkupParamDefinition.lookup (paramName); 849 if (param != null) param.delete(); 850 } 851 852 return displayParamList(); 853 854 } catch( Throwable th ) { 855 throw new Error ( th.getMessage() ); 857 } 858 } 859 }
| Popular Tags
|