You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by lt...@apache.org on 2009/04/02 14:17:16 UTC

svn commit: r761262 - in /maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src: main/java/org/apache/maven/doxia/module/fo/ test/java/org/apache/maven/doxia/module/fo/

Author: ltheussl
Date: Thu Apr  2 12:17:15 2009
New Revision: 761262

URL: http://svn.apache.org/viewvc?rev=761262&view=rev
Log:
[DOXIA-304] FO Sink does not recognize attributes of img tags

Modified:
    maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
    maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java
    maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java

Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java?rev=761262&r1=761261&r2=761262&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java Thu Apr  2 12:17:15 2009
@@ -30,6 +30,7 @@
 import org.apache.maven.doxia.document.DocumentModel;
 import org.apache.maven.doxia.document.DocumentTOC;
 import org.apache.maven.doxia.document.DocumentTOCItem;
+import org.apache.maven.doxia.sink.SinkEventAttributes;
 import org.apache.maven.doxia.util.DoxiaUtils;
 import org.apache.maven.doxia.util.HtmlTools;
 
@@ -226,22 +227,24 @@
     /** {@inheritDoc} */
     public void figureGraphics( String name )
     {
-        if ( !isFigure() )
-        {
-            write( "<fo:external-graphic" + getFoConfiguration().getAttributeString( "figure.graphics" ) );
-        }
+        figureGraphics( name, null );
+    }
 
-        String anchor = name;
+    /** {@inheritDoc} */
+    public void figureGraphics( String src, SinkEventAttributes attributes )
+    {
+        String anchor = src;
 
-        if ( name.startsWith( "../" ) && docName != null )
+        if ( src.startsWith( "../" ) && docName != null )
         {
-            anchor = resolveLinkRelativeToBase( name );
+            anchor = resolveLinkRelativeToBase( src );
         }
 
-        writeln( " src=\"" + anchor + "\"/>" );
+        super.figureGraphics( anchor, attributes );
     }
 
 
+
     /** {@inheritDoc} */
     public void anchor( String name )
     {

Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java?rev=761262&r1=761261&r2=761262&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java Thu Apr  2 12:17:15 2009
@@ -26,12 +26,14 @@
 
 import javax.swing.text.MutableAttributeSet;
 import javax.swing.text.SimpleAttributeSet;
+import javax.swing.text.html.HTML.Attribute;
 import javax.swing.text.html.HTML.Tag;
 
 import org.apache.maven.doxia.sink.AbstractXmlSink;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.SinkEventAttributeSet;
 import org.apache.maven.doxia.sink.SinkEventAttributes;
+import org.apache.maven.doxia.sink.SinkUtils;
 import org.apache.maven.doxia.util.DoxiaUtils;
 import org.apache.maven.doxia.util.HtmlTools;
 import org.codehaus.plexus.util.StringUtils;
@@ -85,7 +87,7 @@
     private boolean verbatim;
 
     /** figure flag. */
-    private boolean figure;
+    private boolean inFigure;
 
     private String encoding;
 
@@ -574,17 +576,15 @@
     /** {@inheritDoc} */
     public void figure()
     {
-        this.figure = true;
+        this.inFigure = true;
         writeEOL();
         writeStartTag( BLOCK_TAG, "figure.display" );
-        write( "<fo:external-graphic"
-            + config.getAttributeString( "figure.graphics" ) );
     }
 
     /** {@inheritDoc} */
     public void figure_()
     {
-        this.figure = false;
+        this.inFigure = false;
         writeEndTag( BLOCK_TAG );
         writeEOL();
     }
@@ -592,12 +592,27 @@
     /** {@inheritDoc} */
     public void figureGraphics( String name )
     {
-        if ( !isFigure() )
+        figureGraphics( name, null );
+    }
+
+    /** {@inheritDoc} */
+    public void figureGraphics( String src, SinkEventAttributes attributes )
+    {
+        MutableAttributeSet atts = config.getAttributeSet( "figure.graphics" );
+        atts.addAttribute( Attribute.SRC.toString(), src );
+
+        if ( attributes != null && attributes.isDefined( SinkEventAttributes.WIDTH ) )
         {
-            write( "<fo:external-graphic" + config.getAttributeString( "figure.graphics" ) );
+            atts.addAttribute( "content-width", attributes.getAttribute( SinkEventAttributes.WIDTH ) );
         }
 
-        writeln( " src=\"" + name + "\"/>" );
+        if ( attributes != null && attributes.isDefined( SinkEventAttributes.HEIGHT ) )
+        {
+            atts.addAttribute( "content-height", attributes.getAttribute( SinkEventAttributes.HEIGHT ) );
+        }
+
+        writeln( "<fo:external-graphic" + SinkUtils.getAttributeString( atts ) + "/>" );
+
     }
 
     /**
@@ -607,7 +622,7 @@
      */
     protected boolean isFigure()
     {
-        return this.figure;
+        return this.inFigure;
     }
 
     /** {@inheritDoc} */
@@ -626,7 +641,21 @@
     /** {@inheritDoc} */
     public void paragraph()
     {
-        writeStartTag( BLOCK_TAG, "normal.paragraph" );
+        paragraph( null );
+    }
+
+    /** {@inheritDoc} */
+    public void paragraph( SinkEventAttributes attributes )
+    {
+        MutableAttributeSet atts = config.getAttributeSet( "normal.paragraph" );
+
+        if ( attributes != null && attributes.isDefined( SinkEventAttributes.ALIGN ) )
+        {
+            atts.addAttribute( "text-align", attributes.getAttribute( SinkEventAttributes.ALIGN ) );
+        }
+
+        writeEOL();
+        writeStartTag( BLOCK_TAG, atts );
     }
 
     /** {@inheritDoc} */

Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java?rev=761262&r1=761261&r2=761262&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java Thu Apr  2 12:17:15 2009
@@ -276,8 +276,8 @@
         String dlAtts = getConfig().getAttributeString( "figure.display" );
         String dtAtts = getConfig().getAttributeString( "figure.graphics" );
         String ddAtts = getConfig().getAttributeString( "figure.caption" );
-        return EOL + EOL + "<fo:block" + dlAtts + "><fo:external-graphic" + dtAtts
-            + " src=\"" + source +  "\"/>" + EOL + EOL + "<fo:block" + ddAtts
+        return EOL + EOL + "<fo:block" + dlAtts + "><fo:external-graphic"
+            + " src=\"" + source +  "\"" + dtAtts + "/>" + EOL + EOL + "<fo:block" + ddAtts
             + ">" + caption + "</fo:block>" + EOL + "</fo:block>" + EOL;
     }