KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > web > TKHTMLTemplate


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/web/TKHTMLTemplate.java,v 1.8 2001/06/11 14:04:38 alex Exp $
3  *
4  */

5 package com.teamkonzept.web;
6
7 import java.io.*;
8 import com.oroinc.text.regex.*;
9
10 import com.teamkonzept.lib.*;
11 import com.teamkonzept.lib.templates.*;
12 import com.teamkonzept.web.templates.*;
13
14 /**
15  * Die Klasse TKTemplate stellt Methoden fuer die Generierung eines Templates
16  * zur Verfuegung
17  */

18 public class TKHTMLTemplate extends TKTemplate {
19     static protected final String JavaDoc patRefTag = "(SRC|HREF|ACTION|BACKGROUND)";
20     
21     static Pattern patBaseURL;
22     public TKTemplateSyntax newSyntax()
23     {
24         return new TKHTMLTemplateSyntax();
25     }
26     
27     public TKTemplateSyntax newSyntax(Pattern patTKTag)
28     {
29         return new TKHTMLTemplateSyntax(patTKTag);
30     }
31
32     /************************************************************************
33     /**
34      * Konstruktor1
35      * Ein File-Objekt wird erzeugt un an Konstruktor2 uebergeben
36      *
37      * @param String filename, Pfad und Name des Templates
38      */

39     public TKHTMLTemplate( String JavaDoc location ) throws TKTemplateSyntaxException, FileNotFoundException
40     {
41         super( location );
42     }
43     
44     /************************************************************************
45     /**
46      * Konstruktor3
47      * Durch dn Aufruf der statischen Methode init() werden Pattern fuer die
48      * spaetere Patternsuche/ersetzung definiert und global zur Verfuegung gestellt.
49      *
50      *@param ts, Ein TKTemplateSyntax-Objekt
51      *@param filename, das template als File-Objekt
52      */

53     public TKHTMLTemplate( TKTemplateSyntax ts/*, File templateFile*/ )
54     {
55         super( ts );
56     }
57     
58     /************************************************************************
59     /**
60      * Die URL-Base setzen
61      * Images sind z.B. meist ausserhalb des CGI-Verzeichnisses abgelegt.
62      * Im Template steht damit nicht der vollstaendige Pfad der Images.
63      * Die Methode setURLBase setzt den vollstaendigen Pfad fuer diese Bilder.
64      *
65      * @param String aBase, der Pfad
66      */

67     public void setURLBase(String JavaDoc aBase){
68         ((TKHTMLTemplateData)td).base = aBase;
69     }
70     
71     /************************************************************************
72     /**
73      * Durch den Aufruf der Methode doMainSubstitution enthaelt die
74      * Instanzvariable "text" das Template mit den substituierten TKTags.
75      * Die nicht vollstaendigen Pfade werden ersetzt.
76      *
77      * Die URL-Base ist gestzt, wenn Images ausserhalb des CGI-Verzeichnisses
78      * abgelegt sind. Fuer diese Bilder muss der vollstaendige Pfad im
79      * Template gesetzt werden.
80      */

81     public void doTagSubstitution() throws TKTemplateSyntaxException
82     {
83         //long d2 = System.currentTimeMillis();
84
doMainSubstitutions();
85
86         //long d3 = System.currentTimeMillis();
87
if (((TKHTMLTemplateData)td).base != null){
88             rel2baseURL();
89         }
90     }
91
92     /************************************************************************
93     /**
94      * Images sind z.B. meist ausserhalb des CGI-Verzeichnisses abgelegt.
95      * Im Template steht damit nicht der vollstaendige Pfad der Images.
96      * Die Methode setURLBase setzt den vollstaendigen Pfad fuer diese Bilder.
97      */

98     protected void rel2baseURL()
99     {
100         text = Util.substitute( TKReg.getMatcher(), patBaseURL, " $1=\""+((TKHTMLTemplateData)td).base, text, Util.SUBSTITUTE_ALL );
101     }
102     
103     //{{DECLARE_CONTROLS
104
//}}
105
}
106
107
108
Popular Tags