]> source.dussan.org Git - poi.git/commitdiff
Bugzilla 52568: added methods to set/get an XWPFRun's text color
authorYegor Kozlov <yegor@apache.org>
Tue, 7 Feb 2012 09:45:20 +0000 (09:45 +0000)
committerYegor Kozlov <yegor@apache.org>
Tue, 7 Feb 2012 09:45:20 +0000 (09:45 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1241395 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/status.xml
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java

index 68d7792bc704d226f353ef1922a94b6288ffd89e..3f0996a3fcb818c011ff0ec45b851e391111ba6a 100644 (file)
@@ -34,6 +34,7 @@
 
     <changes>
         <release version="3.8-beta6" date="2012-??-??">
+           <action dev="poi-developers" type="add">52568 - Added methods to set/get an XWPFRun's text color</action>
            <action dev="poi-developers" type="add">52566 - Added methods to set/get vertical alignment and color in XWPFTableCell</action>
            <action dev="poi-developers" type="add">52562 - Added methods to get/set a table row's Can't Split and Repeat Header attributes  in XWPF</action>
            <action dev="poi-developers" type="add">52561 - Added methods to set table inside borders and cell margins in XWPF</action>
index 73629f7467a9d013d0700202c0508775ac5cb8c2..f5d396abb8e43d63302d5df76e218c2cb630f445 100644 (file)
@@ -48,6 +48,7 @@ import org.openxmlformats.schemas.drawingml.x2006.main.STShapeType;
 import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTAnchor;
 import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBr;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTColor;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDrawing;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTEmpty;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts;
@@ -74,6 +75,8 @@ import org.openxmlformats.schemas.drawingml.x2006.picture.CTPictureNonVisual;
  * XWPFRun object defines a region of text with a common set of properties
  *
  * @author Yegor Kozlov
+ * @author Gregg Morris (gregg dot morris at gmail dot com) - added getColor(), setColor()
+ *
  */
 public class XWPFRun {
     private CTR run;
@@ -244,6 +247,31 @@ public class XWPFRun {
         bold.setVal(value ? STOnOff.TRUE : STOnOff.FALSE);
     }
 
+    /**
+     * Get text color. The returned value is a string in the hex form "RRGGBB".
+     */
+    public String getColor() {
+       String color = null;
+        if (run.isSetRPr()) {
+               CTRPr pr = run.getRPr();
+               if (pr.isSetColor()) {
+                       CTColor clr = pr.getColor();
+                       color = clr.xgetVal().getStringValue();
+               }
+        }
+       return color;
+    }
+
+    /**
+     * Set text color.
+     * @param rgbStr - the desired color, in the hex form "RRGGBB".
+     */
+    public void setColor(String rgbStr) {
+        CTRPr pr = run.isSetRPr() ? run.getRPr() : run.addNewRPr();
+        CTColor color = pr.isSetColor() ? pr.getColor() : pr.addNewColor();
+        color.setVal(rgbStr);
+    }
+
     /**
      * Return the string content of this text run
      *
index 272ca87d1ca994888a8eacfe271eea450c1525df..086e117e53224894561ac56e925ec560a421276e 100644 (file)
@@ -161,6 +161,13 @@ public class TestXWPFRun extends TestCase {
         assertEquals(2400, rpr.getPosition().getVal().longValue());
     }
 
+    public void testSetGetColor() {
+        XWPFRun run = new XWPFRun(ctRun, p);
+        run.setColor("0F0F0F");
+        String clr = run.getColor();
+        assertEquals("0F0F0F", clr);
+    }
+
     public void testAddCarriageReturn() {
        
        ctRun.addNewT().setStringValue("TEST STRING");