import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.BufferedInputStream;
+import java.io.FileNotFoundException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
return parse(new StringReader(aData), aParser);
}
+ public static TALTemplate parse(File aFile, TALExpressionParser aParser) throws TALExc, TALFailure {
+ try {
+ return parse(new BufferedInputStream(new FileInputStream(aFile), 1024*128), aParser);
+ }
+ catch (FileNotFoundException e) {
+ throw new TALFailure(e);
+ }
+ }
public static TALTemplate parse(InputStream anInputStream, TALExpressionParser aParser) throws TALExc, TALFailure {
return parse(new InputStreamReader(anInputStream), aParser);
}
package mir.generator.tal;
-import java.io.*;
+import java.io.File;
import java.util.HashMap;
-import java.util.*;
-import mir.generator.tal.interfaces.*;
-import mir.util.xml.html.*;
+import java.util.Map;
public class TALTest {
public static void main(String args[]) {
Map test = new HashMap();
test.put("name", "zapata");
- HTMLParser parser2 = new HTMLParser();
-/*
- parser2.parse(new StringReader("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> <div><b><a href=bla>blaat</div>"),
- new HTMLParser.ParserReceiver() {
-
- public void dtd(String aDTD) {
- System.out.println(aDTD);
- }
-
- public void openTag(String aTag, Map anAttributes) {
-
- System.out.print("<"+aTag);
- Iterator i = anAttributes.entrySet().iterator();
- while (i.hasNext()) {
- Map.Entry entry = (Map.Entry) i.next();
-
- System.out.print(" " + entry.getKey() + "=\"" + entry.getValue()+"\"");
- }
- System.out.print(">");
- }
-
- public void closeTag(String aTag) {
- System.out.print("</"+aTag+">");
- }
-
- public void comment(String aData) {
- }
-
- public void cdata(String aData) {
- System.out.print(aData);
- }
- }
- );
-*/
-String doc =
-" <!DOCTYPE some doc type>" +
-" <head tal:on-error=\"exception.message\">"+
-" <title tal:content=\"lang('posting.htmltitle')\"/>"+
-" <meta name=\"description\" tal:attributes=\"content lang('posting.meta.description')\">"+
-" <meta name=\"author\" content=\"${lang(\"posting.meta.author\")}\">"+
-" <meta name=\"keywords\" content=\"${lang(\"posting.meta.keywords\")}\">"+
-" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=${config['Mir.DefaultHTMLCharset']}\">"+
-" <meta name=\"robots\" content=\"index\">"+
-" <meta name=\"robots\" content=\"follow\">"+
-" <link rel=stylesheet type=\"text/css\" href=\"${config['Producer.ProductionHost']}/style/formate.css\">"+
-" </head>"+
-" <body bgcolor=\"white\" text=\"black\" link=\"#006600\" vlink=\"#006600\" alink=\"Red\" tal:on-error='exception.message'>"+
-" </body>"+
-"</html>";
- System.out.println(doc);
- TALTemplate template = parser.parse(doc, expressionParser);
-
-
-// <td tal:on-error='exception.message'><tal:test tal:content='name.bla'></tal:test><h1 tal:content=\"name\">test</h1></TD>", expressionParser);
- PrintWriter o = new PrintWriter(System.out);
- template.processTemplate(test, o, new TALLogger.TALSystemOutLogger());
- o.close();
-
+ TALTemplate template = parser.parse(new File("m:/biotechdev/mir/etc/producertal/startpage.template"), expressionParser);
}
catch (Throwable t) {
System.out.println("Exception: " + t.toString());
public void debug(String anObject, String aMessage) {
System.out.println("DEBUG: " + anObject + " " + aMessage);
-
}
public void info(String anObject, String aMessage) {
}
catch (Throwable t) {
aLogger.error(" error while generating: " + t.getClass().getName() + ": " + t.getMessage());
+ t.printStackTrace(aLogger.asPrintWriter(LoggerWrapper.DEBUG_MESSAGE));
}
}
}
\ No newline at end of file
* @version 1.0
*/
private class SectionsManager {
- Stack handlerStack;
+ private Stack handlerStack;
public SectionsManager() {
handlerStack = new Stack();
HTMLSchemaInformation.HTMLTagInformation tagInformation =
schemaInformation.lookupTag(lowercaseTag);
+ Map attributes = new HashMap();
+
+ Iterator i = anAttributes.entrySet().iterator();
+ while (i.hasNext()) {
+ Map.Entry entry = (Map.Entry) i.next();
+
+ attributes.put(((String) entry.getKey()).toLowerCase(), entry.getValue());
+ }
+
if (tagInformation!=null) {
if (tagInformation.getIsBlock()) {
closeAllInlineTags();
closeAllAutoclosingTags(tagInformation);
- Map attributes = new HashMap();
-
- Iterator i = anAttributes.entrySet().iterator();
- while (i.hasNext()) {
- Map.Entry entry = (Map.Entry) i.next();
-
- attributes.put(((String) entry.getKey()).toLowerCase(), entry.getValue());
- }
-
receiver.openTag(lowercaseTag, attributes);
if (tagInformation.getHasBody()) {
tagStack.push(lowercaseTag);
}
}
else {
- tagStack.push(aTag);
+ receiver.openTag(lowercaseTag, attributes);
+ tagStack.push(lowercaseTag);
}
}
public void handleClosingTag(String aTag) throws HTMLParserExc {
String lowercaseTag = aTag.toLowerCase();
- String tag = aTag;
HTMLSchemaInformation.HTMLTagInformation tagInformation =
schemaInformation.lookupTag(lowercaseTag);
if (tagInformation!=null) {
- tag = lowercaseTag;
if (tagInformation.getIsBlock()) {
closeAllInlineTags();
}
}
- int index = tagStack.search(tag);
+ int index = tagStack.search(lowercaseTag);
if (index>-1 && index<4) {
for (int i=0; i<index; i++) {
public void returnMeta(Map result,Document doc){
result.put(templateVariable,doc.get(matchField));
}
-
-
}
</list>
<tr>
- <td colspan="3" class="table-foot">
+ <td colspan="4" class="table-foot">
${count} ${lang("records")} / ${lang("show_from_to", from, to)}
</td>
</tr>