html parser fix + small fix in comment list page
authorzapata <zapata>
Mon, 12 Jan 2004 22:11:45 +0000 (22:11 +0000)
committerzapata <zapata>
Mon, 12 Jan 2004 22:11:45 +0000 (22:11 +0000)
source/mir/generator/tal/TALTemplateParser.java
source/mir/generator/tal/TALTest.java
source/mir/generator/tal/interfaces/TALLogger.java
source/mir/producer/GeneratingProducerNode.java
source/mir/util/xml/XMLParserEngine.java
source/mir/util/xml/html/HTMLParser.java
source/mircoders/search/AudioSearchTerm.java
templates/admin/commentlist.template

index deacff9..f82ec6a 100755 (executable)
@@ -33,6 +33,10 @@ import java.io.InputStream;
 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;
@@ -53,6 +57,14 @@ public class TALTemplateParser {
     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);
   }
index cbc89fe..d78372a 100755 (executable)
 
 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[]) {
@@ -44,64 +42,7 @@ public class TALTest {
       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());
index 0b7a8dd..2f36c83 100755 (executable)
@@ -46,7 +46,6 @@ public interface TALLogger {
 
     public void debug(String anObject, String aMessage) {
       System.out.println("DEBUG: " + anObject + "  " + aMessage);
-
     }
 
     public void info(String anObject, String aMessage) {
index 35d5ee9..0920e64 100755 (executable)
@@ -102,6 +102,7 @@ public class GeneratingProducerNode implements ProducerNode {
     }
     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
index ff616dd..5a9c094 100755 (executable)
@@ -242,7 +242,7 @@ public class XMLParserEngine {
    * @version 1.0
    */
   private class SectionsManager {
-    Stack handlerStack;
+    private Stack handlerStack;
 
     public SectionsManager() {
       handlerStack = new Stack();
index d810ab1..669a9bd 100755 (executable)
@@ -47,6 +47,15 @@ public class HTMLParser {
       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();
@@ -54,15 +63,6 @@ public class HTMLParser {
 
         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);
@@ -72,25 +72,24 @@ public class HTMLParser {
         }
       }
       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++) {
index 95d83d3..ffbaec1 100755 (executable)
@@ -68,8 +68,6 @@ public class AudioSearchTerm extends SearchTerm{
   public void returnMeta(Map result,Document doc){
     result.put(templateVariable,doc.get(matchField));
   }
-
-
 }
 
 
index 30d7c09..38ec726 100755 (executable)
   </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>