You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2021/05/30 08:45:42 UTC

[maven-doxia] branch DOXIA-588v2 created (now 072181b)

This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a change to branch DOXIA-588v2
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git.


      at 072181b  [DOXIA-588] Update Xhtml5BaseSinkTest align missing

This branch includes the following new commits:

     new 072181b  [DOXIA-588] Update Xhtml5BaseSinkTest align missing

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[maven-doxia] 01/01: [DOXIA-588] Update Xhtml5BaseSinkTest align missing

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch DOXIA-588v2
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git

commit 072181ba70acb35450f8e95c6e7251da2ed0621a
Author: dcruette <dc...@qualitesys.com>
AuthorDate: Mon Apr 26 19:09:38 2021 +0200

    [DOXIA-588] Update Xhtml5BaseSinkTest align missing
    
    See https://issues.apache.org/jira/browse/DOXIA-588
---
 .../maven/doxia/sink/impl/Xhtml5BaseSink.java      | 24 +++++++++++
 .../maven/doxia/sink/impl/XhtmlBaseSink.java       | 24 +++++++++++
 .../maven/doxia/sink/impl/Xhtml5BaseSinkTest.java  |  6 +--
 .../maven/doxia/sink/impl/XhtmlBaseSinkTest.java   | 15 ++++---
 .../apache/maven/doxia/module/apt/AptSinkTest.java | 47 ++++++++++++++++++++++
 .../maven/doxia/module/xdoc/XdocSinkTest.java      |  2 +-
 6 files changed, 106 insertions(+), 12 deletions(-)

diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java
index 2f0d9bc..45d726f 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java
@@ -39,6 +39,7 @@ import javax.swing.text.html.HTML.Tag;
 
 import org.apache.maven.doxia.markup.HtmlMarkup;
 import org.apache.maven.doxia.markup.Markup;
+import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.SinkEventAttributes;
 import org.apache.maven.doxia.util.DoxiaUtils;
 import org.apache.maven.doxia.util.HtmlTools;
@@ -1659,6 +1660,29 @@ public class Xhtml5BaseSink
     {
         Tag t = ( headerRow ? HtmlMarkup.TH : HtmlMarkup.TD );
 
+        if ( !headerRow && cellCountStack != null && !cellCountStack.isEmpty()
+            && cellJustifStack != null && !cellJustifStack.isEmpty() && getCellJustif() != null )
+        {
+            int cellCount = getCellCount();
+            if ( cellCount < getCellJustif().length )
+            {
+                Map<Integer, MutableAttributeSet> hash = new HashMap<>();
+                hash.put( Sink.JUSTIFY_CENTER, SinkEventAttributeSet.CENTER );
+                hash.put( Sink.JUSTIFY_LEFT, SinkEventAttributeSet.LEFT );
+                hash.put( Sink.JUSTIFY_RIGHT, SinkEventAttributeSet.RIGHT );
+                MutableAttributeSet atts = hash.get( getCellJustif()[cellCount] );
+
+                if ( attributes == null )
+                {
+                    attributes = new SinkEventAttributeSet();
+                }
+                if ( atts != null )
+                {
+                    attributes.addAttributes( atts );
+                }
+            }
+        }
+
         if ( attributes == null )
         {
             writeStartTag( t, null );
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java
index 6cb76e1..10d08ec 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java
@@ -38,6 +38,7 @@ import javax.swing.text.html.HTML.Tag;
 
 import org.apache.maven.doxia.markup.HtmlMarkup;
 import org.apache.maven.doxia.markup.Markup;
+import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.SinkEventAttributes;
 import org.apache.maven.doxia.util.DoxiaUtils;
 import org.apache.maven.doxia.util.HtmlTools;
@@ -1536,6 +1537,29 @@ public class XhtmlBaseSink
     {
         Tag t = ( headerRow ? HtmlMarkup.TH : HtmlMarkup.TD );
 
+        if ( !headerRow && cellCountStack != null && !cellCountStack.isEmpty()
+            && cellJustifStack != null && !cellJustifStack.isEmpty() && getCellJustif() != null )
+        {
+            int cellCount = getCellCount();
+            if ( cellCount < getCellJustif().length )
+            {
+                Map<Integer, MutableAttributeSet> hash = new HashMap<>();
+                hash.put( Sink.JUSTIFY_CENTER, SinkEventAttributeSet.CENTER );
+                hash.put( Sink.JUSTIFY_LEFT, SinkEventAttributeSet.LEFT );
+                hash.put( Sink.JUSTIFY_RIGHT, SinkEventAttributeSet.RIGHT );
+                MutableAttributeSet atts = hash.get( getCellJustif()[cellCount] );
+
+                if ( attributes == null )
+                {
+                    attributes = new SinkEventAttributeSet();
+                }
+                if ( atts != null )
+                {
+                    attributes.addAttributes( atts );
+                }
+            }
+        }
+
         if ( attributes == null )
         {
             writeStartTag( t, null );
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java
index 029da65..6e1652e 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java
@@ -176,9 +176,9 @@ public class Xhtml5BaseSinkTest
         assertTrue( actual.contains(
                 "<table border=\"0\" class=\"bodyTable\" align=\"right\">" + "<caption>caption3</caption>" ) );
 
-        assertTrue( actual.contains( "<td>cell11</td>" ) );
-        assertTrue( actual.contains( "<td>nestedTable1Cell11</td>" ) );
-        assertTrue( actual.contains( "<td>nestedTable2Cell11</td>" ) );
+        assertTrue( actual.contains( "<td align=\"center\">cell11</td>" ) );
+        assertTrue( actual.contains( "<td align=\"left\">nestedTable1Cell11</td>" ) );
+        assertTrue( actual.contains( "<td align=\"right\">nestedTable2Cell11</td>" ) );
         assertTrue( actual.contains( "<td>nestedTable1Cell22</td>" ) );
         assertTrue( actual.contains( "<td>cell22</td>" ) );
     }
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java
index e9f7074..9e498e2 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java
@@ -93,7 +93,7 @@ public class XhtmlBaseSinkTest
             sink = new XhtmlBaseSink( writer );
 
             sink.table();
-            sink.tableRows( new int[] { Sink.JUSTIFY_CENTER }, false );
+            sink.tableRows( new int[] { Sink.JUSTIFY_CENTER, Sink.JUSTIFY_LEFT }, false );
             sink.tableRow();
             sink.tableCell();
             sink.text( "cell11" );
@@ -106,7 +106,7 @@ public class XhtmlBaseSinkTest
             sink.tableRow();
             sink.tableCell();
             sink.table( SinkEventAttributeSet.LEFT );
-            sink.tableRows( new int[] { Sink.JUSTIFY_LEFT }, false );
+            sink.tableRows( new int[] { Sink.JUSTIFY_LEFT, Sink.JUSTIFY_RIGHT }, false );
             sink.tableRow();
             sink.tableCell();
             sink.text( "nestedTable1Cell11" );
@@ -119,7 +119,7 @@ public class XhtmlBaseSinkTest
             sink.tableCell();
 
             sink.table( SinkEventAttributeSet.RIGHT );
-            sink.tableRows( new int[] { Sink.JUSTIFY_RIGHT }, false );
+            sink.tableRows( new int[] { Sink.JUSTIFY_RIGHT, Sink.JUSTIFY_CENTER }, false );
             sink.tableRow();
             sink.tableCell();
             sink.text( "nestedTable2Cell11" );
@@ -177,11 +177,10 @@ public class XhtmlBaseSinkTest
         assertTrue( actual.contains(
                 "<table border=\"0\" class=\"bodyTable\" align=\"right\">" + "<caption>caption3</caption>" ) );
 
-        assertTrue( actual.contains( "<td>cell11</td>" ) );
-        assertTrue( actual.contains( "<td>nestedTable1Cell11</td>" ) );
-        assertTrue( actual.contains( "<td>nestedTable2Cell11</td>" ) );
-        assertTrue( actual.contains( "<td>nestedTable1Cell22</td>" ) );
-        assertTrue( actual.contains( "<td>cell22</td>" ) );
+        assertTrue( actual.contains( "<td align=\"center\">cell11</td>" ) );
+        assertTrue( actual.contains( "<td align=\"right\">nestedTable2Cell11</td>" ) );
+        assertTrue( actual.contains( "<td align=\"right\">nestedTable1Cell22</td>" ) );
+        assertTrue( actual.contains( "<td align=\"left\">cell22</td>" ) );
     }
 
     /**
diff --git a/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java b/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
index e41855c..de18ee8 100644
--- a/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
+++ b/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
@@ -422,4 +422,51 @@ public class AptSinkTest extends AbstractSinkTest
 
         assertEquals( "Wrong link or paragraph markup in table cell", expected, getSinkContent() );
     }
+
+    public void testTableCellsWithJustification()
+    {
+        final String linkTarget = "target";
+        final String linkText = "link";
+        final String paragraphText = "paragraph text";
+        final Sink sink = getSink();
+        sink.table();
+        sink.tableRows( new int[] { Sink.JUSTIFY_RIGHT, Sink.JUSTIFY_LEFT }, false );
+        sink.tableRow();
+        sink.tableCell();
+        sink.link( linkTarget );
+        sink.text( linkText );
+        sink.link_();
+        sink.tableCell_();
+        sink.tableCell();
+        sink.paragraph();
+        sink.text( paragraphText );
+        sink.paragraph_();
+        sink.tableCell_();
+        sink.tableRow_();
+        sink.tableRows_();
+        sink.table_();
+        sink.flush();
+        sink.close();
+
+        String expected = EOL +
+                AptMarkup.TABLE_ROW_START_MARKUP +
+                AptMarkup.TABLE_COL_RIGHT_ALIGNED_MARKUP + 
+                AptMarkup.TABLE_COL_LEFT_ALIGNED_MARKUP + 
+                EOL +
+                AptMarkup.LINK_START_1_MARKUP+
+                linkTarget +
+                AptMarkup.LINK_START_2_MARKUP+
+                linkText +
+                AptMarkup.LINK_END_MARKUP+
+                AptMarkup.TABLE_CELL_SEPARATOR_MARKUP +
+                paragraphText +
+                AptMarkup.TABLE_CELL_SEPARATOR_MARKUP +
+                EOL +
+                AptMarkup.TABLE_ROW_START_MARKUP +
+                AptMarkup.TABLE_COL_RIGHT_ALIGNED_MARKUP +
+                AptMarkup.TABLE_COL_LEFT_ALIGNED_MARKUP +
+                EOL;
+
+        assertEquals( "Wrong justification in table cells", expected, getSinkContent() );
+    }
 }
diff --git a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
index 1e45d94..f1d21b7 100644
--- a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
+++ b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
@@ -197,7 +197,7 @@ public class XdocSinkTest
     protected String getTableBlock( String cell, String caption )
     {
         return "<table border=\"0\"><caption>" + caption
-                + "</caption>\n<tr valign=\"top\">\n<td>" + cell + "</td></tr></table>";
+                + "</caption>\n<tr valign=\"top\">\n<td align=\"center\">" + cell + "</td></tr></table>";
     }
 
     /** {@inheritDoc} */