]> source.dussan.org Git - poi.git/commitdiff
Start on XWPFStyles support for document default styles
authorNick Burch <nick@apache.org>
Thu, 7 May 2015 13:07:00 +0000 (13:07 +0000)
committerNick Burch <nick@apache.org>
Thu, 7 May 2015 13:07:00 +0000 (13:07 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1678187 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultParagraphStyle.java [new file with mode: 0644]
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultRunStyle.java [new file with mode: 0644]
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFLatentStyles.java
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java

diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultParagraphStyle.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultParagraphStyle.java
new file mode 100644 (file)
index 0000000..3d29f79
--- /dev/null
@@ -0,0 +1,38 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.xwpf.usermodel;
+
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPr;
+
+/**
+ * Default Paragraph style, from which other styles will override
+ * TODO Share logic with {@link XWPFParagraph} which also uses CTPPr
+ */
+public class XWPFDefaultParagraphStyle {
+    private CTPPr ppr;
+    
+    public XWPFDefaultParagraphStyle(CTPPr ppr) {
+        this.ppr = ppr;
+    }
+    
+    public int getSpacingAfter() {
+        if (ppr.isSetSpacing())
+            return ppr.getSpacing().getAfter().intValue();
+        return -1;
+    }
+}
diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultRunStyle.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultRunStyle.java
new file mode 100644 (file)
index 0000000..38de75e
--- /dev/null
@@ -0,0 +1,38 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.xwpf.usermodel;
+
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;
+
+/**
+ * Default Character Run style, from which other styles will override
+ * TODO Share logic with {@link XWPFRun} which also uses CTRPr
+ */
+public class XWPFDefaultRunStyle {
+    private CTRPr rpr;
+    
+    public XWPFDefaultRunStyle(CTRPr rpr) {
+        this.rpr = rpr;
+    }
+    
+    public int getFontSize() {
+        if (rpr.isSetSz())
+            return rpr.getSz().getVal().intValue() / 2;
+        return -1;
+    }
+}
index 83b898c1be295e4fab1388deb315f87dbf065ff6..c296a4aafec07269b8d6b704f43a6a99e41c4045 100644 (file)
@@ -35,8 +35,12 @@ public class XWPFLatentStyles {
                this.styles=styles;
        }
        
+       public int getNumberOfStyles() {
+           return latentStyles.sizeOfLsdExceptionArray();
+       }
+       
        /**
-        * checks wheter specific LatentStyleID is a latentStyle
+        * checks whether specific LatentStyleID is a latentStyle
        */
     @SuppressWarnings("deprecation")
        protected boolean isLatentStyle(String latentStyleID){  
index 9c6319c56e794279c1b65ae29de97914d7125710..2888c137218e15c6fb0557e156a0783100bfbc50 100644 (file)
@@ -49,7 +49,6 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDocDefaults;
  *  information stored in the {@link XWPFRun}
  */
 public class XWPFStyles extends POIXMLDocumentPart{
-    
     private List<XWPFStyle> listStyle = new ArrayList<XWPFStyle>();
     private CTStyles ctStyles;
     XWPFLatentStyles latentStyles;
@@ -104,6 +103,10 @@ public class XWPFStyles extends POIXMLDocumentPart{
       ctStyles.save(out, xmlOptions);
       out.close();
    }
+   
+   protected void ensureDocDefaults() {
+       // TODO Refactor from elsewhere
+   }
        
     /**
      * Sets the ctStyles
@@ -290,14 +293,6 @@ public class XWPFStyles extends POIXMLDocumentPart{
                runProps.setRFonts(fonts);
        }
        
-       
-       /**
-        * get latentstyles
-        */
-       public XWPFLatentStyles getLatentStyles() {
-               return latentStyles;
-       }
-       
        /**
         * get the style with the same name
         * if this style is not existing, return null
@@ -309,6 +304,19 @@ public class XWPFStyles extends POIXMLDocumentPart{
                        }       
                }
                return null;
-               
        }
-}//end class
+       
+       /**
+        * Get the default paragraph style which applies to the document
+        */
+       public XWPFDefaultParagraphStyle getDefaultParagraphStyle() {
+           return null; // TODO
+       }
+    
+    /**
+     * Get the definition of all the Latent Styles
+     */
+    public XWPFLatentStyles getLatentStyles() {
+        return latentStyles;
+    }
+}
index 3e7d54b900428525b48acd59174bf61d555e38b4..578e73f8179f8741dca0d4ec934f2199fb4266ed 100644 (file)
@@ -184,6 +184,10 @@ public class TestXWPFStyles extends TestCase {
         assertNotNull(styles.getStyle("TableNormal"));
         assertNotNull(styles.getStyle("NoList"));
         
-        // TODO Check latent and default
+        // We can't do much yet with latent styles
+        assertEquals(137, styles.getLatentStyles().getNumberOfStyles());
+        
+        // Check the default styles
+        // TODO
     }
 }