Author: ltheussl
Date: Wed Oct 10 12:25:52 2007
New Revision: 583585

URL: http://svn.apache.org/viewvc?rev=583585&view=rev
Log:
Fix ordered lists, use style instead of type.

Modified:
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java?rev=583585&r1=583584&r2=583585&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java
 Wed Oct 10 12:25:52 2007
@@ -66,6 +66,9 @@
      */
     private static final String ANCHOR = "anchor";
 
+    /** Used for nested lists. */
+    private int orderedListDepth = 0;
+
     /** [EMAIL PROTECTED] */
     protected void handleStartTag( XmlPullParser parser, Sink sink )
         throws XmlPullParserException, MacroExecutionException
@@ -121,11 +124,48 @@
         }
         else if ( parser.getName().equals( Tag.OL.toString() ) )
         {
-            sink.numberedList( Sink.NUMBERING_DECIMAL );
+            int numbering = Sink.NUMBERING_DECIMAL;
+
+            // this will have to be generalized if we handle styles
+            String style = parser.getAttributeValue( null, 
Attribute.STYLE.toString() );
+
+            if ( style != null )
+            {
+                if ( "list-style-type: upper-alpha".equals( style ) )
+                {
+                    numbering = Sink.NUMBERING_UPPER_ALPHA;
+                }
+                else if ( "list-style-type: lower-alpha".equals( style ) )
+                {
+                    numbering = Sink.NUMBERING_LOWER_ALPHA;
+                }
+                else if ( "list-style-type: upper-roman".equals( style ) )
+                {
+                    numbering = Sink.NUMBERING_UPPER_ROMAN;
+                }
+                else if ( "list-style-type: lower-roman".equals( style ) )
+                {
+                    numbering = Sink.NUMBERING_LOWER_ROMAN;
+                }
+                else if ( "list-style-type: decimal".equals( style ) )
+                {
+                    numbering = Sink.NUMBERING_DECIMAL;
+                }
+            }
+
+            sink.numberedList( numbering );
+            orderedListDepth++;
         }
         else if ( parser.getName().equals( Tag.LI.toString() ) )
         {
-            sink.listItem();
+            if ( orderedListDepth == 0 )
+            {
+                sink.listItem();
+            }
+            else
+            {
+                sink.numberedListItem();
+            }
         }
         else if ( parser.getName().equals( Tag.HEAD.toString() ) )
         {
@@ -262,10 +302,18 @@
         else if ( parser.getName().equals( Tag.OL.toString() ) )
         {
             sink.numberedList_();
+            orderedListDepth--;
         }
         else if ( parser.getName().equals( Tag.LI.toString() ) )
         {
-            sink.listItem_();
+            if ( orderedListDepth == 0 )
+            {
+                sink.listItem_();
+            }
+            else
+            {
+                sink.numberedListItem_();
+            }
         }
         else if ( parser.getName().equals( Tag.HEAD.toString() ) )
         {

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java?rev=583585&r1=583584&r2=583585&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java
 Wed Oct 10 12:25:52 2007
@@ -489,33 +489,35 @@
     }
 
     /**
+     * The default list style depends on the numbering.
+     *
      * [EMAIL PROTECTED]
      * @see javax.swing.text.html.HTML.Tag#OL
      */
     public void numberedList( int numbering )
     {
-        String type;
+        String style;
         switch ( numbering )
         {
-            case Sink.NUMBERING_LOWER_ALPHA:
-                type = "a";
+            case NUMBERING_UPPER_ALPHA:
+                style = "upper-alpha";
                 break;
-            case Sink.NUMBERING_UPPER_ALPHA:
-                type = "A";
+            case NUMBERING_LOWER_ALPHA:
+                style = "lower-alpha";
                 break;
-            case Sink.NUMBERING_LOWER_ROMAN:
-                type = "i";
+            case NUMBERING_UPPER_ROMAN:
+                style = "upper-roman";
                 break;
-            case Sink.NUMBERING_UPPER_ROMAN:
-                type = "I";
+            case NUMBERING_LOWER_ROMAN:
+                style = "lower-roman";
                 break;
-            case Sink.NUMBERING_DECIMAL:
+            case NUMBERING_DECIMAL:
             default:
-                type = "1";
+                style = "decimal";
         }
 
         MutableAttributeSet att = new SimpleAttributeSet();
-        att.addAttribute( Attribute.TYPE, type );
+        att.addAttribute( Attribute.STYLE, "list-style-type: " + style );
 
         writeStartTag( Tag.OL, att );
     }

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java?rev=583585&r1=583584&r2=583585&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
 Wed Oct 10 12:25:52 2007
@@ -138,7 +138,7 @@
     /** [EMAIL PROTECTED] */
     protected String getNumberedListBlock( String item )
     {
-        return "<ol type=\"i\"><li>" + item + "</li></ol>";
+        return "<ol style=\"list-style-type: lower-roman\"><li>" + item + 
"</li></ol>";
     }
 
     /** [EMAIL PROTECTED] */


Reply via email to