]> source.dussan.org Git - poi.git/commitdiff
Rich text in HSSFTextbox must have at least one format run. Make sure it is so and...
authorYegor Kozlov <yegor@apache.org>
Wed, 16 Apr 2008 08:43:08 +0000 (08:43 +0000)
committerYegor Kozlov <yegor@apache.org>
Wed, 16 Apr 2008 08:43:08 +0000 (08:43 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@648623 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/usermodel/HSSFTextbox.java
src/testcases/org/apache/poi/hssf/usermodel/TestHSSFTextbox.java

index 3a8fedd6965534a66111acb3b1c6f6079c0c540f..c9d4fbf1111daeafa856b92429be8bb3409d6067 100644 (file)
@@ -81,6 +81,9 @@ public class HSSFTextbox
      */
     public void setString( HSSFRichTextString string )
     {
+        //if font is not set we must set the default one
+        if (string.numFormattingRuns() == 0) string.applyFont((short)0);
+
         this.string = string;
     }
 
index f7ce61faf2f9d06c40c388fe9ba9ce76bd1576d8..f836d4284e6404424f21801f2a53450a47ac0b72 100755 (executable)
@@ -49,4 +49,23 @@ public final class TestHSSFTextbox extends TestCase{
         assertEquals(HSSFTextbox.VERTICAL_ALIGNMENT_CENTER, textbox.getVerticalAlignment());\r
     }\r
 \r
+    /**\r
+     * Excel requires at least one format run in HSSFTextbox.\r
+     * When inserting text make sure that if font is not set we must set the default one.\r
+     */\r
+    public void testSetDeafultTextFormat() {\r
+        HSSFWorkbook wb = new HSSFWorkbook();\r
+        HSSFSheet sheet = wb.createSheet();\r
+        HSSFPatriarch patriarch = sheet.createDrawingPatriarch();\r
+\r
+        HSSFTextbox textbox1 = patriarch.createTextbox(new HSSFClientAnchor(0,0,0,0,(short)1,1,(short)3,3));\r
+        HSSFRichTextString rt1 = new HSSFRichTextString("Hello, World!");\r
+        assertEquals(0, rt1.numFormattingRuns());\r
+        textbox1.setString(rt1);\r
+\r
+        HSSFRichTextString rt2 = textbox1.getString();\r
+        assertEquals(1, rt2.numFormattingRuns());\r
+        assertEquals(HSSFRichTextString.NO_FONT, rt2.getFontOfFormattingRun(0));\r
+    }\r
+\r
  }\r