From: Nick Burch Date: Thu, 7 May 2015 13:07:00 +0000 (+0000) Subject: Start on XWPFStyles support for document default styles X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=9fd183275375f1dae57e1632dd8c496e1043de4c;p=poi.git Start on XWPFStyles support for document default styles git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1678187 13f79535-47bb-0310-9956-ffa450edef68 --- 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 index 0000000000..3d29f7942c --- /dev/null +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultParagraphStyle.java @@ -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 index 0000000000..38de75e347 --- /dev/null +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDefaultRunStyle.java @@ -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; + } +} diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFLatentStyles.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFLatentStyles.java index 83b898c1be..c296a4aafe 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFLatentStyles.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFLatentStyles.java @@ -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){ diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java index 9c6319c56e..2888c13721 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java @@ -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 listStyle = new ArrayList(); 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; + } +} diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java index 3e7d54b900..578e73f817 100644 --- a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java +++ b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java @@ -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 } }