Author: ltheussl
Date: Sat Jun 13 09:15:56 2009
New Revision: 784352

URL: http://svn.apache.org/viewvc?rev=784352&view=rev
Log:
Symmetrize unknown events. Filter table frame attribute.

Modified:
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java?rev=784352&r1=784351&r2=784352&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java
 Sat Jun 13 09:15:56 2009
@@ -60,6 +60,8 @@
 
     private boolean ignore;
 
+    private boolean simpleTag;
+
     /**
      * A selective stack of parent elements
      */
@@ -158,6 +160,7 @@
         }
 
         SinkEventAttributeSet attribs = getAttributesFromParser( parser );
+        simpleTag = parser.isEmptyElementTag();
 
         if ( parser.getName().equals( 
SimplifiedDocbookMarkup.ARTICLE_TAG.toString() ) )
         {
@@ -211,7 +214,14 @@
         {
             if ( !ignorable( parser.getName() ) )
             {
-                handleUnknown( parser, sink, HtmlMarkup.TAG_TYPE_START );
+                if ( simpleTag )
+                {
+                    handleUnknown( parser, sink, HtmlMarkup.TAG_TYPE_SIMPLE );
+                }
+                else
+                {
+                    handleUnknown( parser, sink, HtmlMarkup.TAG_TYPE_START );
+                }
             }
         }
     }
@@ -287,6 +297,7 @@
         else if ( parser.getName().equals( 
SimplifiedDocbookMarkup.IMAGEOBJECT_TAG.toString() )
                 || parser.getName().equals( 
SimplifiedDocbookMarkup.FIGURE_TAG.toString() )
                 || parser.getName().equals( 
SimplifiedDocbookMarkup.THEAD_TAG.toString() )
+                || parser.getName().equals( 
SimplifiedDocbookMarkup.TFOOT_TAG.toString() )
                 || parser.getName().equals( 
SimplifiedDocbookMarkup.TBODY_TAG.toString() ) )
         {
             parent.pop();
@@ -332,14 +343,14 @@
         else if ( BOLD_ELEMENTS.contains( parser.getName() )
             && MONOSPACE_ELEMENTS.contains( parser.getName() ) )
         {
-            sink.bold_();
             sink.monospaced_();
+            sink.bold_();
         }
         else if ( ITALIC_ELEMENTS.contains( parser.getName() )
             && MONOSPACE_ELEMENTS.contains( parser.getName() ) )
         {
-            sink.italic_();
             sink.monospaced_();
+            sink.italic_();
         }
         else if ( BOLD_ELEMENTS.contains( parser.getName() ) )
         {
@@ -375,6 +386,10 @@
                 sink.link_();
             }
         }
+        else if ( !simpleTag && !ignorable( parser.getName() ) )
+        {
+            handleUnknown( parser, sink, HtmlMarkup.TAG_TYPE_END );
+        }
     }
 
     /** {...@inheritdoc} */
@@ -669,6 +684,38 @@
 
     private void handleTableStart( Sink sink, SinkEventAttributeSet attribs )
     {
+        Object frame = attribs.getAttribute( 
SimplifiedDocbookMarkup.FRAME_ATTRIBUTE );
+        if ( frame != null )
+        {
+            String fr = frame.toString();
+            if ( fr.equals( "all" ) )
+            {
+                fr = "box";
+            }
+            else if ( fr.equals( "bottom" ) )
+            {
+                fr = "below";
+            }
+            else if ( fr.equals( "none" ) )
+            {
+                fr = "void";
+            }
+            else if ( fr.equals( "sides" ) )
+            {
+                fr = "vsides";
+            }
+            else if ( fr.equals( "top" ) )
+            {
+                fr = "above";
+            }
+            else if ( fr.equals( "topbot" ) )
+            {
+                fr = "hsides";
+            }
+
+            attribs.addAttribute( SimplifiedDocbookMarkup.FRAME_ATTRIBUTE, fr 
);
+        }
+
         sink.table( attribs );
 
         parent.push( SimplifiedDocbookMarkup.TABLE_TAG.toString() );
@@ -913,6 +960,7 @@
             handleTableStart( sink, attribs );
         }
         else if ( name.equals( SimplifiedDocbookMarkup.THEAD_TAG.toString() )
+                || name.equals( SimplifiedDocbookMarkup.TFOOT_TAG.toString() )
                 || name.equals( SimplifiedDocbookMarkup.TBODY_TAG.toString() ) 
)
         {
             parent.push( name );


Reply via email to