KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > webman > mainint > TKWMAttrEdit


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 /**
15  * @author $Author: alex $
16  * @version $Revision: 1.10 $
17 */

18 public class TKWMAttrEdit {
19
20     // TKHttpThread httpThread;
21
TKHttpInterface httpInterface;
22
23     public TKVector diagnostics;
24     public TKVector hints;
25     public TKParams params;
26     TKEvent evt;
27     
28     /*
29     public TKWMAttrEdit( TKHttpThread httpThread, TKHttpInterface httpInterface, TKParams params )
30     {
31         this.httpThread = httpThread;
32         this.httpInterface = httpInterface;
33         this.params = params;
34
35         this.diagnostics = null;
36         this.hints = null;
37
38     }
39     */

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 JavaDoc 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 JavaDoc 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 JavaDoc name = (String JavaDoc) e.nextElement();
91             if (name == null) continue;
92         
93             String JavaDoc 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 JavaDoc
102     {
103         // httpThread.out.println( "getOwnName() = "+httpInterface.getOwnName()+"<BR>");
104
// httpThread.out.println( "getOwnURL() = "+httpInterface.getOwnURL()+"<BR>");
105
// httpThread.out.println( "getOwnPath() = "+httpInterface.getOwnPath()+"<BR>");
106
// httpThread.out.println( "getDocumentRoot() = "+httpInterface.getDocumentRoot()+"<BR>");
107
// httpThread.out.println( "getServerName() = "+httpInterface.getServerName()+"<BR>");
108
// httpThread.out.println( "getRemoteUser() = "+httpInterface.getRemoteUser()+"<BR>");
109
// httpThread.out.println ("<P>");
110

111         /*
112         Enumeration classes = params.classes();
113         while ((classes != null) && classes.hasMoreElements()) {
114          
115             String className = (String) classes.nextElement();
116             if (className == null) continue;
117             
118             TKHashtable lookup = params.getClass (className);
119             if (lookup == null) continue;
120             
121             Enumeration e = lookup.keys();
122             while ((e != null) && (e.hasMoreElements())) {
123             
124                 String name = (String) e.nextElement();
125                 if (name == null) continue;
126                 
127                 httpThread.out.println( ">>> "+className+" / "+name+" ");
128                 
129                 String value = (String) lookup.get(name).toString();
130                 if (value != null) httpThread.out.println( "--> ("+value+")");
131                 
132                 httpThread.out.println( "<BR>" );
133             }
134         }
135         */

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 JavaDoc th ) {
156             // th.printStackTrace( httpThread.log );
157
throw new Error JavaDoc( th.getMessage() );
158         }
159
160         return true;
161     }
162
163     public boolean doMEFrames() throws Throwable JavaDoc
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 JavaDoc th ) {
175             // th.printStackTrace( httpThread.log );
176
throw new Error JavaDoc( th.getMessage() );
177         }
178
179         return true;
180     }
181
182     public boolean displayMarkupList() throws Throwable JavaDoc
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 JavaDoc th ) {
206             // th.printStackTrace( httpThread.log );
207
throw new Error JavaDoc( th.getMessage() );
208         }
209
210         return true;
211     }
212     
213     public void displayCrControl (TKHTMLTemplate edit) throws Throwable JavaDoc {
214
215         TKMarkupStatics statics = TKMarkupStatics.setup();
216
217         boolean doConversion = TKMarkupDefinition.doCrConversion (statics);
218         String JavaDoc crMarkup = TKMarkupDefinition.crMarkup (statics);
219         String JavaDoc crcrMarkup = TKMarkupDefinition.crcrMarkup (statics);
220         if (doConversion)
221             edit.set ("CR_CONVERT",new Boolean JavaDoc (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 JavaDoc
227     {
228         String JavaDoc doConversionStr = params.get("PAR","CR_CONVERT");
229         boolean doConversion = doConversionStr != null && !doConversionStr.trim().equalsIgnoreCase ("FALSE");
230
231         String JavaDoc crMarkup = params.get("PAR","CR_MARKUP");
232         String JavaDoc crcrMarkup = params.get("PAR","CRCR_MARKUP");
233         
234         TKMarkupDefinition.saveCrControl (doConversion,crMarkup,crcrMarkup);
235     }
236
237     public TKMarkupDefinition loadMarkupDef (TKHTMLTemplate edit) throws Throwable JavaDoc {
238
239         String JavaDoc 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 JavaDoc(markup.id));
252
253         return markup;
254     }
255     
256     public TKMarkupDefinition updateMarkupDef (
257         TKHTMLTemplate edit, String JavaDoc action, String JavaDoc indexStr) throws Throwable JavaDoc
258         {
259
260         String JavaDoc markupName = params.get("PAR","MARKUP_NAME");
261         String JavaDoc markupOldName = params.get("PAR","MARKUP_OLD_NAME");
262         String JavaDoc markupOldId = params.get("PAR","MARKUP_OLD_ID");
263         String JavaDoc markupInfo = params.get("PAR","MARKUP_INFO");
264         String JavaDoc isAtomStr = params.get("PAR","MARKUP_ISATOM");
265         String JavaDoc 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 JavaDoc sub = (String JavaDoc) 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 JavaDoc paramFieldName = (String JavaDoc) subFieldLookup.get(sub);
328             if (paramFieldName == null) continue;
329
330             TKHashtable paramFieldLookup = (TKHashtable) fieldLookup.get(paramFieldName);
331             if (paramFieldLookup == null) continue;
332         
333             String JavaDoc paramName = null;
334             String JavaDoc defName = null;
335             String JavaDoc defaultValue = null;
336
337             String JavaDoc isOptionalStr = null;
338             String JavaDoc useDefaultStr = null;
339             String JavaDoc editableStr = null;
340
341             String JavaDoc fullPath = (String JavaDoc) paramFieldLookup.get("PARAM_NAME");
342             if (fullPath != null) paramName = params.get("PAR",fullPath);
343             
344             fullPath = (String JavaDoc) paramFieldLookup.get("DEFINITION_NAME");
345             if (fullPath != null) defName = params.get("PAR",fullPath);
346             
347             fullPath = (String JavaDoc) paramFieldLookup.get("DEFAULT_VALUE");
348             if (fullPath != null) defaultValue = params.get("PAR",fullPath);
349             
350             fullPath = (String JavaDoc) paramFieldLookup.get("IS_OPTIONAL");
351             if (fullPath != null) isOptionalStr = params.get("PAR",fullPath);
352             
353             fullPath = (String JavaDoc) paramFieldLookup.get("USE_DEFAULT");
354             if (fullPath != null) useDefaultStr = params.get("PAR",fullPath);
355             
356             fullPath = (String JavaDoc) 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 JavaDoc 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 JavaDoc th) {
397
398                 String JavaDoc 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 JavaDoc
448     {
449         return updateMarkupDef (edit,"DEL",params.get("ME_REMOVE_PAR","ME_MARKUP_DEFINITION"));
450     }
451     
452     public TKMarkupDefinition selectParDef (TKHTMLTemplate edit) throws Throwable JavaDoc
453     {
454         return updateMarkupDef (edit,"DEF",params.get("ME_SELECT_PARDEF","ME_MARKUP_DEFINITION"));
455     }
456     
457     public TKMarkupDefinition addParam (TKHTMLTemplate edit) throws Throwable JavaDoc
458     {
459         return updateMarkupDef (edit,"ADD",null);
460     }
461     
462     public TKMarkupDefinition saveMarkupDef (TKHTMLTemplate edit, String JavaDoc action) throws Throwable JavaDoc
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 JavaDoc 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 JavaDoc(definition.id));
479             addHint ("Sicherung wurde durchgeführt");
480
481         } catch (Throwable JavaDoc th) {
482
483             String JavaDoc 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 JavaDoc {
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 JavaDoc th ) {
520             // th.printStackTrace( httpThread.log );
521
throw new Error JavaDoc( th.getMessage() );
522         }
523
524         return true;
525     }
526
527     public TKMarkupDefinition deleteMarkupDef (TKHTMLTemplate edit) throws Throwable JavaDoc {
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 JavaDoc th) {
541
542             String JavaDoc 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 JavaDoc {
552     
553         diagnostics = null;
554         hints = null;
555
556         try {
557             TKMarkupAdmin.setup();
558
559             String JavaDoc 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 JavaDoc th ) {
568
569             // th.printStackTrace( httpThread.log );
570
throw new Error JavaDoc( th.getMessage() );
571         }
572     }
573
574     public boolean doMEParamFrames() throws Throwable JavaDoc
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 JavaDoc th ) {
587             // th.printStackTrace( httpThread.log );
588
throw new Error JavaDoc( th.getMessage() );
589         }
590
591         return true;
592     }
593
594     public boolean displayParamList() throws Throwable JavaDoc
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 JavaDoc th ) {
611             // th.printStackTrace( httpThread.log );
612
throw new Error JavaDoc( th.getMessage() );
613         }
614
615         return true;
616     }
617
618     public TKMarkupParamDefinition loadMarkupParamDef (TKHTMLTemplate edit) throws Throwable JavaDoc {
619
620         String JavaDoc 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 JavaDoc(param.id));
633
634         return param;
635     }
636     
637     public TKMarkupParamDefinition updateMarkupParamDef (
638         TKHTMLTemplate edit, String JavaDoc action) throws Throwable JavaDoc {
639
640         String JavaDoc paramName = params.get("PAR","PARAM_NAME");
641         String JavaDoc paramOldName = params.get("PAR","PARAM_OLD_NAME");
642         String JavaDoc paramOldId = params.get("PAR","PARAM_OLD_ID");
643         String JavaDoc defaultValue = params.get("PAR","DEFAULT_VALUE");
644         String JavaDoc typeStr = params.get("PAR","PARAM_TYPE");
645         String JavaDoc 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 JavaDoc sub = (String JavaDoc) subFields.nextElement();
711             if (sub == null) continue;
712             
713             if ((action != null) && (action.trim().equals(sub.trim()))) continue;
714             
715             String JavaDoc optionFieldName = (String JavaDoc) subFieldLookup.get(sub);
716             if (optionFieldName == null) continue;
717
718             TKHashtable optionFieldLookup = (TKHashtable) fieldLookup.get(optionFieldName);
719             if (optionFieldLookup == null) continue;
720         
721             String JavaDoc option = null;
722
723             String JavaDoc fullPath = (String JavaDoc) 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 JavaDoc {
740
741         return updateMarkupParamDef (edit,params.get("ME_REMOVE_PAR_OPTION","ME_PARAM_DEFINITION"));
742     }
743     
744     public TKMarkupParamDefinition addOption (TKHTMLTemplate edit) throws Throwable JavaDoc {
745
746         return updateMarkupParamDef (edit,"ADD");
747     }
748     
749     public TKMarkupParamDefinition saveMarkupParamDef (TKHTMLTemplate edit, String JavaDoc action) throws Throwable JavaDoc {
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 JavaDoc 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 JavaDoc(definition.id));
765             addHint ("Sicherung wurde durchgeführt");
766
767         } catch (Throwable JavaDoc th) {
768
769             String JavaDoc 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 JavaDoc {
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 JavaDoc th ) {
806             // th.printStackTrace( httpThread.log );
807
throw new Error JavaDoc( th.getMessage() );
808         }
809
810         return true;
811     }
812
813     public TKMarkupParamDefinition deleteMarkupParamDef (TKHTMLTemplate edit) throws Throwable JavaDoc {
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 JavaDoc th) {
828
829             String JavaDoc 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 JavaDoc {
839     
840         diagnostics = null;
841         hints = null;
842
843         try {
844             TKMarkupAdmin.setup();
845
846             String JavaDoc 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 JavaDoc th ) {
855             // th.printStackTrace( httpThread.log );
856
throw new Error JavaDoc( th.getMessage() );
857         }
858     }
859     //{{DECLARE_CONTROLS
860
//}}
861
}
Popular Tags