]> source.dussan.org Git - poi.git/commitdiff
add non-deprecated method insertTableBefore to Range
authorSergey Vladimirov <sergey@apache.org>
Tue, 9 Aug 2011 05:34:46 +0000 (05:34 +0000)
committerSergey Vladimirov <sergey@apache.org>
Tue, 9 Aug 2011 05:34:46 +0000 (05:34 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1155214 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/src/org/apache/poi/hwpf/usermodel/Range.java
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java

index 7bb89b869e505eb88e0689658172ca3ac11d2d5c..3f23eea0c2d82d5e5357d839c76d0876b9c37a8e 100644 (file)
@@ -563,17 +563,18 @@ public class Range { // TODO -instantiable superclass
                adjustFIB(-(_end - _start));
        }
 
-       /**
-        * Inserts a simple table into the beginning of this range. The number of
-        * columns is determined by the TableProperties passed into this function.
-        *
-        * @param props
-        *            The table properties for the table.
-        * @param rows
-        *            The number of rows.
-        * @return The empty Table that is now part of the document.
-     * @deprecated Use code shall not work with {@link TableProperties}
-        */
+    /**
+     * Inserts a simple table into the beginning of this range. The number of
+     * columns is determined by the TableProperties passed into this function.
+     * 
+     * @param props
+     *            The table properties for the table.
+     * @param rows
+     *            The number of rows.
+     * @return The empty Table that is now part of the document.
+     * @deprecated Use code shall not work with {@link TableProperties}. Use
+     *             {@link #insertTableBefore(short, int)} instead
+     */
        @Deprecated
        public Table insertBefore(TableProperties props, int rows) {
                ParagraphProperties parProps = new ParagraphProperties();
@@ -603,6 +604,42 @@ public class Range { // TODO -instantiable superclass
         return new Table( _start, _start + diff, this, 1 );
     }
 
+    /**
+     * Inserts a simple table into the beginning of this range.
+     * 
+     * @param columns
+     *            The number of columns
+     * @param rows
+     *            The number of rows.
+     * @return The empty Table that is now part of the document.
+     */
+       public Table insertTableBefore(short columns, int rows) {
+        ParagraphProperties parProps = new ParagraphProperties();
+        parProps.setFInTable(true);
+        parProps.setItap( 1 );
+
+        final int oldEnd = this._end;
+        
+        for ( int x = 0; x < rows; x++ )
+        {
+            Paragraph cell = this.insertBefore( parProps, StyleSheet.NIL_STYLE );
+            cell.insertAfter( String.valueOf( '\u0007' ) );
+            for ( int y = 1; y < columns; y++ )
+            {
+                cell = cell.insertAfter( parProps, StyleSheet.NIL_STYLE );
+                cell.insertAfter( String.valueOf( '\u0007' ) );
+            }
+            cell = cell.insertAfter( parProps, StyleSheet.NIL_STYLE,
+                    String.valueOf( '\u0007' ) );
+            cell.setTableRowEnd( new TableProperties( columns ) );
+        }
+
+        final int newEnd = this._end;
+        final int diff = newEnd - oldEnd;
+
+        return new Table( _start, _start + diff, this, 1 );
+       }
+       
        /**
         * Inserts a list into the beginning of this range.
         *
index f85a9c54a232762a378f9e052c429f291c324ac6..0ecfbf4a1f4a5dd0b3510c2eb310b73a87c12a69 100644 (file)
@@ -94,8 +94,7 @@ public class TestBugs extends TestCase
         HWPFDocument doc = HWPFTestDataSamples.openSampleFile( "empty.doc" );
 
         Range range = doc.getRange();
-        Table table = range.insertBefore(
-                new TableProperties( (short) columns ), rows );
+        Table table = range.insertTableBefore( (short) columns, rows );
         table.sanityCheck();
         range.sanityCheck();