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