]> source.dussan.org Git - poi.git/commitdiff
Add a XWPFRun equivalent of isHighlighted, and add to the common WP interface
authorNick Burch <nick@apache.org>
Thu, 5 Nov 2015 15:15:36 +0000 (15:15 +0000)
committerNick Burch <nick@apache.org>
Thu, 5 Nov 2015 15:15:36 +0000 (15:15 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1712793 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/wp/usermodel/CharacterRun.java
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
src/scratchpad/src/org/apache/poi/hwpf/usermodel/CharacterRun.java

index da2a3630b8c882cb21a498639d6d7460d50599a2..549ef6779b7c9c779596a3c0dd159ad7fb8392eb 100644 (file)
@@ -55,7 +55,25 @@ public interface CharacterRun {
 
     int getKerning();
     void setKerning(int kern);
+    
+    boolean isHighlighted();
+    
+    // HWPF has colour indexes, XWPF has a highlight enum with the colours in
+//    byte getHighlightedColor();
+//    void setHighlighted(byte color);
+    
+    // HWPF has colour indexes, XWPF colour names
+//  int getColor();
+//  void setColor(int color);
+
 
+    /**
+     * Gets the fonts which shall be used to display the text contents of
+     * this run. Specifies a font which shall be used to format all "normal"
+     * characters in the run
+     *
+     * @return a string representing the font
+     */
     String getFontName();
     
     /**
@@ -71,14 +89,6 @@ public interface CharacterRun {
 //    short getSubSuperScriptIndex();
 //    void setSubSuperScriptIndex(short iss);
 
-    // HWPF uses indexes, XWPF special vertical alignments
-//    int getVerticalOffset();
-//    void setVerticalOffset(int hpsPos);
-
-    // HWPF has colour indexes, XWPF colour names
-//    int getColor();
-//    void setColor(int color);
-
     // TODO Review these, and add to XWPFRun if possible
 /*
     boolean isFldVanished();
index 5fb16060c16d7fb7eb90abf64a26c80b70dc5355..860aff25e013ed9bf23c2f94328f1b536f7c97a0 100644 (file)
@@ -73,11 +73,12 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTVerticalAlignRun
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STBrClear;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STBrType;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STFldCharType;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHighlightColor;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STUnderline;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalAlignRun;
 import org.w3c.dom.NodeList;
-import org.w3c.dom.Text;\r
+import org.w3c.dom.Text;
 \r
 /**
  * XWPFRun object defines a region of text with a common set of properties
@@ -623,6 +624,17 @@ public class XWPFRun implements ISDTContents, IRunElement, CharacterRun {
         kernmes.setVal(BigInteger.valueOf(kern));\r
     }\r
 \r
+    public boolean isHighlighted() {
+        CTRPr pr = run.getRPr();
+        if (pr == null || !pr.isSetHighlight())
+            return false;
+        if (pr.getHighlight().getVal() == STHighlightColor.NONE)
+            return false;
+        return true;
+    }
+    // TODO Provide a wrapper round STHighlightColor, then expose getter/setter
+    //  for the highlight colour. Ideally also then add to CharacterRun interface
+
     public int getCharacterSpacing() {\r
         CTRPr pr = run.getRPr();\r
         if (pr == null || !pr.isSetSpacing())\r
index a447098ef817c0011e76a3295c49b08f58d74839..2b1340fc7570465174bdf22442269118a4eba9e3 100644 (file)
@@ -23,12 +23,14 @@ import java.util.Iterator;
 import java.util.List;
 
 import junit.framework.TestCase;
+
 import org.apache.poi.xwpf.XWPFTestDataSamples;
 import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBr;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STBrClear;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHighlightColor;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STUnderline;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalAlignRun;
@@ -382,6 +384,19 @@ public class TestXWPFRun extends TestCase {
 
         assertEquals(1, count);
     }
+    
+    public void testSetGetHighlight() throws Exception {
+        XWPFRun run = p.createRun();
+        assertEquals(false, run.isHighlighted());
+        
+        // TODO Do this using XWPFRun methods
+        run.getCTR().addNewRPr().addNewHighlight().setVal(STHighlightColor.NONE);
+        assertEquals(false, run.isHighlighted());
+        run.getCTR().getRPr().getHighlight().setVal(STHighlightColor.CYAN);
+        assertEquals(true, run.isHighlighted());
+        run.getCTR().getRPr().getHighlight().setVal(STHighlightColor.NONE);
+        assertEquals(false, run.isHighlighted());
+    }
 
     public void testAddPicture() throws Exception {
         XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestDocument.docx");
index 4181c197f9c8309373def04b3011488746569fce..9fc0c780737b215826879e6d87c5c1efbc39a8b1 100644 (file)
@@ -106,6 +106,7 @@ public final class CharacterRun extends Range
    *
    * @return TYPE_CHARACTER
    */
+  @SuppressWarnings("deprecation")
   public int type()
   {
     return TYPE_CHARACTER;