You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2015/05/07 15:25:47 UTC

svn commit: r1678193 - in /poi/trunk/src/ooxml: java/org/apache/poi/xwpf/usermodel/ testcases/org/apache/poi/xwpf/usermodel/

Author: nick
Date: Thu May  7 13:25:47 2015
New Revision: 1678193

URL: http://svn.apache.org/r1678193
Log:
Start exposing the default paragraph and run styles from XWPFStyles

Modified:
    poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultParagraphStyle.java
    poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultRunStyle.java
    poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultParagraphStyle.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultParagraphStyle.java?rev=1678193&r1=1678192&r2=1678193&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultParagraphStyle.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultParagraphStyle.java Thu May  7 13:25:47 2015
@@ -30,6 +30,10 @@ public class XWPFDefaultParagraphStyle {
         this.ppr = ppr;
     }
     
+    protected CTPPr getPPr() {
+        return ppr;
+    }
+    
     public int getSpacingAfter() {
         if (ppr.isSetSpacing())
             return ppr.getSpacing().getAfter().intValue();

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultRunStyle.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultRunStyle.java?rev=1678193&r1=1678192&r2=1678193&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultRunStyle.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultRunStyle.java Thu May  7 13:25:47 2015
@@ -30,6 +30,10 @@ public class XWPFDefaultRunStyle {
         this.rpr = rpr;
     }
     
+    protected CTRPr getRPr() {
+        return rpr;
+    }
+    
     public int getFontSize() {
         if (rpr.isSetSz())
             return rpr.getSz().getVal().intValue() / 2;

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java?rev=1678193&r1=1678192&r2=1678193&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java Thu May  7 13:25:47 2015
@@ -34,6 +34,7 @@ import org.apache.poi.openxml4j.opc.Pack
 import org.apache.poi.openxml4j.opc.PackageRelationship;
 import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlOptions;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPrDefault;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTStyle;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTStyles;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.StylesDocument;
@@ -49,9 +50,12 @@ import org.openxmlformats.schemas.wordpr
  *  information stored in the {@link XWPFRun}
  */
 public class XWPFStyles extends POIXMLDocumentPart{
-    private List<XWPFStyle> listStyle = new ArrayList<XWPFStyle>();
     private CTStyles ctStyles;
-    XWPFLatentStyles latentStyles;
+    private List<XWPFStyle> listStyle = new ArrayList<XWPFStyle>();
+    
+    private XWPFLatentStyles latentStyles;
+    private XWPFDefaultRunStyle defaultRunStyle;
+    private XWPFDefaultParagraphStyle defaultParaStyle;
 
     /**
      * Construct XWPFStyles from a package part
@@ -104,7 +108,23 @@ public class XWPFStyles extends POIXMLDo
     }
 
     protected void ensureDocDefaults() {
-        // TODO Refactor from elsewhere
+        if (! ctStyles.isSetDocDefaults()) {
+            ctStyles.addNewDocDefaults();
+        }
+        
+        CTDocDefaults docDefaults = ctStyles.getDocDefaults();
+        if (! docDefaults.isSetPPrDefault())
+            docDefaults.addNewPPrDefault();
+        if (! docDefaults.isSetRPrDefault())
+            docDefaults.addNewRPrDefault();
+        
+        CTPPrDefault pprd = docDefaults.getPPrDefault();
+        CTRPrDefault rprd = docDefaults.getRPrDefault();
+        if (!pprd.isSetPPr()) pprd.addNewPPr();
+        if (!rprd.isSetRPr()) rprd.addNewRPr();
+        
+        defaultRunStyle = new XWPFDefaultRunStyle(rprd.getRPr());
+        defaultParaStyle = new XWPFDefaultParagraphStyle(pprd.getPPr());
     }
 
     /**
@@ -119,6 +139,17 @@ public class XWPFStyles extends POIXMLDo
         for(CTStyle style : ctStyles.getStyleArray()) {
             listStyle.add(new XWPFStyle(style, this));
         }
+        if (ctStyles.isSetDocDefaults()) {
+            CTDocDefaults docDefaults = ctStyles.getDocDefaults();
+            if (docDefaults.isSetRPrDefault() && docDefaults.getRPrDefault().isSetRPr()) {
+                defaultRunStyle = new XWPFDefaultRunStyle(
+                        docDefaults.getRPrDefault().getRPr());
+            }
+            if (docDefaults.isSetPPrDefault() && docDefaults.getPPrDefault().isSetPPr()) {
+                defaultParaStyle = new XWPFDefaultParagraphStyle(
+                        docDefaults.getPPrDefault().getPPr());
+            }
+        }
     }
 
     /**
@@ -205,33 +236,20 @@ public class XWPFStyles extends POIXMLDo
      * @param strSpellingLanguage
      */
     public void setSpellingLanguage(String strSpellingLanguage) {
-        CTDocDefaults docDefaults = null;
-        CTRPr runProps = null;
+        ensureDocDefaults();
+        
         CTLanguage lang = null;
-
-        // Just making sure we use the members that have already been defined
-        if(ctStyles.isSetDocDefaults()) {
-            docDefaults = ctStyles.getDocDefaults();
-            if(docDefaults.isSetRPrDefault()) {
-                CTRPrDefault RPrDefault = docDefaults.getRPrDefault();
-                if(RPrDefault.isSetRPr()) {
-                    runProps = RPrDefault.getRPr();
-                    if(runProps.isSetLang())
-                        lang = runProps.getLang();
-                }
-            }
+        if (defaultRunStyle.getRPr().isSetLang()) {
+            lang = defaultRunStyle.getRPr().getLang();
+        } else {
+            lang = defaultRunStyle.getRPr().addNewLang();
         }
 
-        if(docDefaults == null)
-            docDefaults = ctStyles.addNewDocDefaults();
-        if(runProps == null)
-            runProps = docDefaults.addNewRPrDefault().addNewRPr();
-        if(lang == null)
-            lang = runProps.addNewLang();
-
         lang.setVal(strSpellingLanguage);
         lang.setBidi(strSpellingLanguage);
     }
+    
+    // TODO Refactor the others like this
 
     /**
      * Sets the default East Asia spelling language on ctStyles DocDefaults parameter
@@ -306,10 +324,19 @@ public class XWPFStyles extends POIXMLDo
     }
 
     /**
+     * Get the default style which applies text runs in the document
+     */
+    public XWPFDefaultRunStyle getDefaultRunStyle() {
+        ensureDocDefaults();
+        return defaultRunStyle;
+    }
+
+    /**
      * Get the default paragraph style which applies to the document
      */
     public XWPFDefaultParagraphStyle getDefaultParagraphStyle() {
-        return null; // TODO
+        ensureDocDefaults();
+        return defaultParaStyle;
     }
 
     /**

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java?rev=1678193&r1=1678192&r2=1678193&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java Thu May  7 13:25:47 2015
@@ -188,6 +188,10 @@ public class TestXWPFStyles extends Test
         assertEquals(137, styles.getLatentStyles().getNumberOfStyles());
         
         // Check the default styles
-        // TODO
+        assertNotNull(styles.getDefaultRunStyle());
+        assertNotNull(styles.getDefaultParagraphStyle());
+        
+        assertEquals(11, styles.getDefaultRunStyle().getFontSize());
+        assertEquals(200, styles.getDefaultParagraphStyle().getSpacingAfter());
     }
 }



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