You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by se...@apache.org on 2011/09/22 22:57:11 UTC

svn commit: r1174386 - in /poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter: AbstractWordConverter.java WordToFoConverter.java WordToFoUtils.java WordToHtmlConverter.java

Author: sergey
Date: Thu Sep 22 20:57:10 2011
New Revision: 1174386

URL: http://svn.apache.org/viewvc?rev=1174386&view=rev
Log:
remove incorrect method to lookup "upper" table cell. In fact, we don't need it at all.

Modified:
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordConverter.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoConverter.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoUtils.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToHtmlConverter.java

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordConverter.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordConverter.java?rev=1174386&r1=1174385&r2=1174386&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordConverter.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordConverter.java Thu Sep 22 20:57:10 2011
@@ -183,7 +183,8 @@ public abstract class AbstractWordConver
         return colSpan;
     }
 
-    protected int getNumberRowsSpanned( Table table, int currentRowIndex,
+    protected int getNumberRowsSpanned( Table table,
+            final int[] tableCellEdges, int currentRowIndex,
             int currentColumnIndex, TableCell tableCell )
     {
         if ( !tableCell.isFirstVerticallyMerged() )
@@ -197,6 +198,35 @@ public abstract class AbstractWordConver
             TableRow nextRow = table.getRow( r1 );
             if ( currentColumnIndex >= nextRow.numCells() )
                 break;
+
+            // we need to skip row if he don't have cells at all
+            boolean hasCells = false;
+            int currentEdgeIndex = 0;
+            for ( int c = 0; c < nextRow.numCells(); c++ )
+            {
+                TableCell nextTableCell = nextRow.getCell( c );
+                if ( !nextTableCell.isVerticallyMerged()
+                        || nextTableCell.isFirstVerticallyMerged() )
+                {
+                    int colSpan = getNumberColumnsSpanned( tableCellEdges,
+                            currentEdgeIndex, nextTableCell );
+                    currentEdgeIndex += colSpan;
+
+                    if ( colSpan != 0 )
+                    {
+                        hasCells = true;
+                        break;
+                    }
+                }
+                else
+                {
+                    currentEdgeIndex += getNumberColumnsSpanned(
+                            tableCellEdges, currentEdgeIndex, nextTableCell );
+                }
+            }
+            if ( !hasCells )
+                continue;
+
             TableCell nextCell = nextRow.getCell( currentColumnIndex );
             if ( !nextCell.isVerticallyMerged()
                     || nextCell.isFirstVerticallyMerged() )
@@ -211,35 +241,6 @@ public abstract class AbstractWordConver
         return picturesManager;
     }
 
-    protected int getTableCellEdgesIndexSkipCount( Table table, int r,
-            int[] tableCellEdges, int currentEdgeIndex, int c,
-            TableCell tableCell )
-    {
-        TableCell upperCell = null;
-        for ( int r1 = r - 1; r1 >= 0; r1-- )
-        {
-            final TableRow row = table.getRow( r1 );
-            if ( row == null || c >= row.numCells() )
-                continue;
-
-            final TableCell prevCell = row.getCell( c );
-            if ( prevCell != null && prevCell.isFirstVerticallyMerged() )
-            {
-                upperCell = prevCell;
-                break;
-            }
-        }
-        if ( upperCell == null )
-        {
-            logger.log( POILogger.WARN, "First vertically merged cell for ",
-                    tableCell, " not found" );
-            return 0;
-        }
-
-        return getNumberColumnsSpanned( tableCellEdges, currentEdgeIndex,
-                tableCell );
-    }
-
     protected abstract void outputCharacters( Element block,
             CharacterRun characterRun, String text );
 

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoConverter.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoConverter.java?rev=1174386&r1=1174385&r2=1174386&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoConverter.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoConverter.java Thu Sep 22 20:57:10 2011
@@ -557,8 +557,8 @@ public class WordToFoConverter extends A
                 if ( tableCell.isVerticallyMerged()
                         && !tableCell.isFirstVerticallyMerged() )
                 {
-                    currentEdgeIndex += getTableCellEdgesIndexSkipCount( table,
-                            r, tableCellEdges, currentEdgeIndex, c, tableCell );
+                    currentEdgeIndex += getNumberColumnsSpanned(
+                            tableCellEdges, currentEdgeIndex, tableCell );
                     continue;
                 }
 
@@ -578,8 +578,8 @@ public class WordToFoConverter extends A
                     tableCellElement.setAttribute( "number-columns-spanned",
                             String.valueOf( colSpan ) );
 
-                final int rowSpan = getNumberRowsSpanned( table, r, c,
-                        tableCell );
+                final int rowSpan = getNumberRowsSpanned( table,
+                        tableCellEdges, r, c, tableCell );
                 if ( rowSpan > 1 )
                     tableCellElement.setAttribute( "number-rows-spanned",
                             String.valueOf( rowSpan ) );

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoUtils.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoUtils.java?rev=1174386&r1=1174385&r2=1174386&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoUtils.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoUtils.java Thu Sep 22 20:57:10 2011
@@ -76,12 +76,14 @@ public class WordToFoUtils extends Abstr
         {
             inline.setAttribute( "color", getColor24( characterRun.getIco24() ) );
         }
-        final int opacity = (int) ( characterRun.getIco24() & 0xFF000000l ) >>> 24;
-        if ( opacity != 0 && opacity != 0xFF )
-        {
-            inline.setAttribute( "opacity",
-                    getOpacity( characterRun.getIco24() ) );
-        }
+        /* XLS FO 1.1 doesn't support opacity -- sergey */
+        // final int opacity = (int) ( characterRun.getIco24() & 0xFF000000l )
+        // >>> 24;
+        // if ( opacity != 0 && opacity != 0xFF )
+        // {
+        // inline.setAttribute( "opacity",
+        // getOpacity( characterRun.getIco24() ) );
+        // }
         if ( characterRun.isCapitalized() )
         {
             inline.setAttribute( "text-transform", "uppercase" );

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToHtmlConverter.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToHtmlConverter.java?rev=1174386&r1=1174385&r2=1174386&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToHtmlConverter.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToHtmlConverter.java Thu Sep 22 20:57:10 2011
@@ -662,8 +662,8 @@ public class WordToHtmlConverter extends
                 if ( tableCell.isVerticallyMerged()
                         && !tableCell.isFirstVerticallyMerged() )
                 {
-                    currentEdgeIndex += getTableCellEdgesIndexSkipCount( table,
-                            r, tableCellEdges, currentEdgeIndex, c, tableCell );
+                    currentEdgeIndex += getNumberColumnsSpanned(
+                            tableCellEdges, currentEdgeIndex, tableCell );
                     continue;
                 }
 
@@ -693,8 +693,8 @@ public class WordToHtmlConverter extends
                     tableCellElement.setAttribute( "colspan",
                             String.valueOf( colSpan ) );
 
-                final int rowSpan = getNumberRowsSpanned( table, r, c,
-                        tableCell );
+                final int rowSpan = getNumberRowsSpanned( table,
+                        tableCellEdges, r, c, tableCell );
                 if ( rowSpan > 1 )
                     tableCellElement.setAttribute( "rowspan",
                             String.valueOf( rowSpan ) );



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org