Author: kiwiwings
Date: Mon Mar 28 22:52:01 2016
New Revision: 1736935
URL: http://svn.apache.org/viewvc?rev=1736935&view=rev
Log:
XSLF: do not display Master Slide objects by default
XSLF: fix alternate content handling for picture shapes
Added:
poi/trunk/test-data/slideshow/2411-Performance_Up.pptx (with props)
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlide.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideLayout.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSlide.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTheme.java
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java?rev=1736935&r1=1736934&r2=1736935&view=diff
==============================================================================
---
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
(original)
+++
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
Mon Mar 28 22:52:01 2016
@@ -31,6 +31,7 @@ import org.apache.poi.sl.usermodel.Pictu
import org.apache.poi.sl.usermodel.Placeholder;
import org.apache.poi.util.Beta;
import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
import org.openxmlformats.schemas.drawingml.x2006.main.CTBlip;
import org.openxmlformats.schemas.drawingml.x2006.main.CTBlipFillProperties;
@@ -110,7 +111,7 @@ public class XSLFPictureShape extends XS
if (rel != null) {
try {
PackagePart imgPart = p.getRelatedPart(rel);
- _data = new XSLFPictureData(imgPart, rel);
+ _data = new XSLFPictureData(imgPart);
}
catch (Exception e) {
throw new POIXMLException(e);
@@ -151,9 +152,29 @@ public class XSLFPictureShape extends XS
return null;
}
- protected CTBlip getBlip(){
+ protected CTBlipFillProperties getBlipFill() {
CTPicture ct = (CTPicture)getXmlObject();
- return ct.getBlipFill().getBlip();
+ CTBlipFillProperties bfp = ct.getBlipFill();
+ if (bfp != null) {
+ return bfp;
+ }
+
+ String xquery =
+ "declare namespace
p='http://schemas.openxmlformats.org/presentationml/2006/main'; "
+ + "declare namespace
mc='http://schemas.openxmlformats.org/markup-compatibility/2006' "
+ + ".//mc:Fallback/p:blipFill"
+ ;
+ XmlObject xo = selectProperty(XmlObject.class, xquery);
+ try {
+ xo = CTPicture.Factory.parse(xo.getDomNode());
+ } catch (XmlException xe) {
+ return null;
+ }
+ return ((CTPicture)xo).getBlipFill();
+ }
+
+ protected CTBlip getBlip(){
+ return getBlipFill().getBlip();
}
protected String getBlipLink(){
@@ -170,8 +191,7 @@ public class XSLFPictureShape extends XS
@Override
public Insets getClipping(){
- CTPicture ct = (CTPicture)getXmlObject();
- CTRelativeRect r = ct.getBlipFill().getSrcRect();
+ CTRelativeRect r = getBlipFill().getSrcRect();
return (r == null) ? null : new Insets(r.getT(), r.getL(), r.getB(),
r.getR());
}
@@ -184,7 +204,7 @@ public class XSLFPictureShape extends XS
String relId = getSheet().importBlip(blipId,
p.getSheet().getPackagePart());
CTPicture ct = (CTPicture)getXmlObject();
- CTBlip blip = ct.getBlipFill().getBlip();
+ CTBlip blip = getBlipFill().getBlip();
blip.setEmbed(relId);
CTApplicationNonVisualDrawingProps nvPr = ct.getNvPicPr().getNvPr();
@@ -209,4 +229,4 @@ public class XSLFPictureShape extends XS
}
}
-}
+}
\ No newline at end of file
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlide.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlide.java?rev=1736935&r1=1736934&r2=1736935&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlide.java
(original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlide.java Mon
Mar 28 22:52:01 2016
@@ -215,12 +215,9 @@ implements Slide<XSLFShape,XSLFTextParag
}
}
- /**
- *
- * @return whether shapes on the master slide should be shown or not.
- */
+ @Override
public boolean getFollowMasterGraphics(){
- return !_slide.isSetShowMasterSp() || _slide.getShowMasterSp();
+ return _slide.isSetShowMasterSp() && _slide.getShowMasterSp();
}
/**
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideLayout.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideLayout.java?rev=1736935&r1=1736934&r2=1736935&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideLayout.java
(original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideLayout.java
Mon Mar 28 22:52:01 2016
@@ -113,7 +113,7 @@ implements MasterSheet<XSLFShape,XSLFTex
@Override
public boolean getFollowMasterGraphics() {
- return !_layout.isSetShowMasterSp() || _layout.getShowMasterSp();
+ return _layout.isSetShowMasterSp() && _layout.getShowMasterSp();
}
/**
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java?rev=1736935&r1=1736934&r2=1736935&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java
(original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java Mon Mar
28 22:52:01 2016
@@ -18,7 +18,10 @@ package org.apache.poi.xslf;
import static junit.framework.TestCase.assertEquals;
import static org.apache.poi.POITestCase.assertContains;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import java.awt.Color;
import java.awt.Dimension;
@@ -36,6 +39,7 @@ import javax.imageio.ImageIO;
import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.POIXMLDocumentPart.RelationPart;
+import org.apache.poi.sl.usermodel.PaintStyle;
import org.apache.poi.sl.usermodel.PictureData.PictureType;
import org.apache.poi.xslf.usermodel.DrawingParagraph;
import org.apache.poi.xslf.usermodel.DrawingTextBody;
@@ -428,4 +432,12 @@ public class TestXSLFBugs {
ppt.removeSlide(1);
assertNotNull(ppt.createSlide());
}
+
+ @Test
+ public void blibFillAlternateContent() throws IOException {
+ XMLSlideShow ppt =
XSLFTestDataSamples.openSampleDocument("2411-Performance_Up.pptx");
+ XSLFPictureShape ps =
(XSLFPictureShape)ppt.getSlides().get(4).getShapes().get(0);
+ assertNotNull(ps.getPictureData());
+ ppt.close();
+ }
}
Modified:
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSlide.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSlide.java?rev=1736935&r1=1736934&r2=1736935&view=diff
==============================================================================
---
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSlide.java
(original)
+++
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSlide.java
Mon Mar 28 22:52:01 2016
@@ -111,7 +111,7 @@ public class TestXSLFSlide {
assertEquals(0, ppt.getSlides().size());
XSLFSlide slide = ppt.createSlide();
- assertTrue(slide.getFollowMasterGraphics());
+ assertFalse(slide.getFollowMasterGraphics());
slide.setFollowMasterGraphics(false);
assertFalse(slide.getFollowMasterGraphics());
slide.setFollowMasterGraphics(true);
Modified:
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTheme.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTheme.java?rev=1736935&r1=1736934&r2=1736935&view=diff
==============================================================================
---
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTheme.java
(original)
+++
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTheme.java
Mon Mar 28 22:52:01 2016
@@ -99,7 +99,7 @@ public class TestXSLFTheme {
assertTrue(sameColor(new Color(148, 198, 0), run2.getFontColor()));
assertNull(sh2.getFillColor()); // no fill
- assertTrue(slide.getSlideLayout().getFollowMasterGraphics());
+ assertFalse(slide.getSlideLayout().getFollowMasterGraphics());
}
void slide5(XSLFSlide slide){
@@ -113,7 +113,7 @@ public class TestXSLFTheme {
// font size is 40pt and scale factor is 90%
assertEquals(36.0, run2.getFontSize(), 0);
- assertTrue(slide.getSlideLayout().getFollowMasterGraphics());
+ assertFalse(slide.getSlideLayout().getFollowMasterGraphics());
}
void slide6(XSLFSlide slide){
Added: poi/trunk/test-data/slideshow/2411-Performance_Up.pptx
URL:
http://svn.apache.org/viewvc/poi/trunk/test-data/slideshow/2411-Performance_Up.pptx?rev=1736935&view=auto
==============================================================================
Binary file - no diff available.
Propchange: poi/trunk/test-data/slideshow/2411-Performance_Up.pptx
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]