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
This commit is contained in:
Nick Burch 2015-05-07 13:07:00 +00:00
parent 9a755850e9
commit 9fd1832753
5 changed files with 105 additions and 13 deletions

View File

@ -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;
}
}

View File

@ -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;
}
}

View 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){

View 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;
@ -105,6 +104,10 @@ public class XWPFStyles extends POIXMLDocumentPart{
out.close();
}
protected void ensureDocDefaults() {
// TODO Refactor from elsewhere
}
/**
* Sets the ctStyles
* @param styles
@ -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;
}
}

View 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
}
}