From dae1a761fdf07908e2c226d8920d0d40dccf8e71 Mon Sep 17 00:00:00 2001 From: Andreas Beeker Date: Sun, 22 May 2016 23:57:14 +0000 Subject: [PATCH] XSLF: remove creation of empty paragraph in XSLFTextShape.addNewTextParagraph() git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1745100 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/poi/xslf/usermodel/XSLFTextShape.java | 11 +++++++++-- .../apache/poi/xslf/usermodel/TestXSLFAutoShape.java | 3 ++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java index 5aa11f1de..f38ea9701 100644 --- a/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java +++ b/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java @@ -175,8 +175,15 @@ public abstract class XSLFTextShape extends XSLFSimpleShape * @return created paragraph run */ public XSLFTextParagraph addNewTextParagraph() { - CTTextBody txBody = getTextBody(true); - CTTextParagraph p = txBody.addNewP(); + CTTextBody txBody = getTextBody(false); + CTTextParagraph p; + if (txBody == null) { + txBody = getTextBody(true); + p = txBody.getPArray(0); + p.removeR(0); + } else { + p = txBody.addNewP(); + } XSLFTextParagraph paragraph = new XSLFTextParagraph(p, this); _paragraphs.add(paragraph); return paragraph; diff --git a/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFAutoShape.java b/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFAutoShape.java index 525f55ef7..798dc472a 100644 --- a/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFAutoShape.java +++ b/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFAutoShape.java @@ -194,7 +194,8 @@ public class TestXSLFAutoShape { assertEquals(1000, p.getXmlObject().getPPr().getLnSpc().getSpcPts().getVal()); assertFalse(p.getXmlObject().getPPr().getLnSpc().isSetSpcPct()); - assertFalse(p.getXmlObject().getPPr().isSetAlgn()); + // align is set in autoshape prototype + assertTrue(p.getXmlObject().getPPr().isSetAlgn()); assertEquals(TextAlign.LEFT, p.getTextAlign()); p.setTextAlign(TextAlign.LEFT); assertTrue(p.getXmlObject().getPPr().isSetAlgn());