git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1831745 13f79535-47bb-0310-9956-ffa450edef68tags/REL_4_0_0_FINAL
@@ -83,4 +83,11 @@ public interface Slide< | |||
* @since POI 4.0.0 | |||
*/ | |||
MasterSheet getSlideLayout(); | |||
/** | |||
* @return the slide name, defaults to "Slide[slideNumber]" | |||
* | |||
* @since POI 4.0.0 | |||
*/ | |||
String getSlideName(); | |||
} |
@@ -390,5 +390,11 @@ implements Slide<XSLFShape,XSLFTextParagraph> { | |||
public boolean isHidden() { | |||
CTSlide sld = getXmlObject(); | |||
return sld.isSetShow() && !sld.getShow(); | |||
} | |||
} | |||
@Override | |||
public String getSlideName() { | |||
final CTCommonSlideData cSld = getXmlObject().getCSld(); | |||
return cSld.isSetName() ? cSld.getName() : "Slide"+getSlideNumber(); | |||
} | |||
} |
@@ -27,6 +27,7 @@ import org.apache.poi.ddf.EscherDggRecord; | |||
import org.apache.poi.ddf.EscherSpRecord; | |||
import org.apache.poi.hslf.exceptions.HSLFException; | |||
import org.apache.poi.hslf.model.HeadersFooters; | |||
import org.apache.poi.hslf.record.CString; | |||
import org.apache.poi.hslf.record.ColorSchemeAtom; | |||
import org.apache.poi.hslf.record.Comment2000; | |||
import org.apache.poi.hslf.record.EscherTextboxWrapper; | |||
@@ -231,7 +232,12 @@ public final class HSLFSlide extends HSLFSheet implements Slide<HSLFShape,HSLFTe | |||
return null; | |||
} | |||
// Simple Accesser methods follow | |||
@Override | |||
public String getSlideName() { | |||
final CString name = (CString)getSlideRecord().findFirstOfType(RecordTypes.CString.typeID); | |||
return name != null ? name.getText() : "Slide"+getSlideNumber(); | |||
} | |||
/** | |||
* Returns an array of all the TextRuns found |
@@ -159,16 +159,20 @@ public abstract class BaseTestSlideShow { | |||
} | |||
@Test | |||
public void shapeName() throws IOException { | |||
public void shapeAndSlideName() throws IOException { | |||
final String file = "SampleShow.ppt"+(getClass().getSimpleName().contains("XML")?"x":""); | |||
try (final InputStream is = slTests.openResourceAsStream(file)) { | |||
try (final SlideShow<? extends Shape, ?> ppt = SlideShowFactory.create(is)) { | |||
final List<? extends Shape> shapes1 = ppt.getSlides().get(0).getShapes(); | |||
assertEquals("The Title", shapes1.get(0).getShapeName()); | |||
assertEquals("Another Subtitle", shapes1.get(1).getShapeName()); | |||
final List<? extends Shape> shapes2 = ppt.getSlides().get(1).getShapes(); | |||
assertEquals("Title 1", shapes2.get(0).getShapeName()); | |||
assertEquals("Content Placeholder 2", shapes2.get(1).getShapeName()); | |||
try (final InputStream is = slTests.openResourceAsStream(file); | |||
final SlideShow<? extends Shape, ?> ppt = SlideShowFactory.create(is)) { | |||
final List<? extends Shape> shapes1 = ppt.getSlides().get(0).getShapes(); | |||
assertEquals("The Title", shapes1.get(0).getShapeName()); | |||
assertEquals("Another Subtitle", shapes1.get(1).getShapeName()); | |||
final List<? extends Shape> shapes2 = ppt.getSlides().get(1).getShapes(); | |||
assertEquals("Title 1", shapes2.get(0).getShapeName()); | |||
assertEquals("Content Placeholder 2", shapes2.get(1).getShapeName()); | |||
for (final Slide<?,?> slide : ppt.getSlides()) { | |||
final String expected = slide.getSlideNumber()==1 ? "FirstSlide" : "Slide2"; | |||
assertEquals(expected, slide.getSlideName()); | |||
} | |||
} | |||
} |