Yegor's Slide Title patch from bug 39948
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@418847 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1ea2717c6f
commit
9e077b9335
@ -143,7 +143,33 @@ public class Slide extends Sheet
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Accesser methods follow
|
// Complex Accesser methods follow
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return title of this slide or <code>null</code> if the slide does not have title.
|
||||||
|
* <p>
|
||||||
|
* The title is a run of text of type <code>TextHeaderAtom.CENTER_TITLE_TYPE</code> or
|
||||||
|
* <code>TextHeaderAtom.TITLE_TYPE</code>
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @see TextHeaderAtom
|
||||||
|
*
|
||||||
|
* @return title of this slide
|
||||||
|
*/
|
||||||
|
public String getTitle(){
|
||||||
|
TextRun[] txt = getTextRuns();
|
||||||
|
for (int i = 0; i < txt.length; i++) {
|
||||||
|
int type = txt[i].getRunType();
|
||||||
|
if (type == TextHeaderAtom.CENTER_TITLE_TYPE ||
|
||||||
|
type == TextHeaderAtom.TITLE_TYPE ){
|
||||||
|
String title = txt[i].getText();
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Simple Accesser methods follow
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an array of all the TextRuns found
|
* Returns an array of all the TextRuns found
|
||||||
|
@ -85,4 +85,74 @@ public class TestSlideOrdering extends TestCase {
|
|||||||
assertEquals(firstTRs[1], s2.getTextRuns()[0].getText());
|
assertEquals(firstTRs[1], s2.getTextRuns()[0].getText());
|
||||||
assertEquals(firstTRs[2], s3.getTextRuns()[0].getText());
|
assertEquals(firstTRs[2], s3.getTextRuns()[0].getText());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Assert that the order of slides is correct.
|
||||||
|
*
|
||||||
|
* @param filename file name of the slide show to assert
|
||||||
|
* @param titles array of reference slide titles
|
||||||
|
*/
|
||||||
|
protected void assertSlideOrdering(String filename, String[] titles) throws Exception {
|
||||||
|
SlideShow ppt = new SlideShow(new HSLFSlideShow(filename));
|
||||||
|
Slide[] slide = ppt.getSlides();
|
||||||
|
|
||||||
|
assertEquals(titles.length, slide.length);
|
||||||
|
for (int i = 0; i < slide.length; i++) {
|
||||||
|
String title = slide[i].getTitle();
|
||||||
|
assertEquals("Wrong slide title in " + filename, titles[i], title);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testTitles() throws Exception{
|
||||||
|
String dirname = System.getProperty("HSLF.testdata.path");
|
||||||
|
|
||||||
|
assertSlideOrdering(dirname + "/basic_test_ppt_file.ppt",
|
||||||
|
new String[]{
|
||||||
|
"This is a test title",
|
||||||
|
"This is the title on page 2"
|
||||||
|
});
|
||||||
|
|
||||||
|
assertSlideOrdering(dirname + "/incorrect_slide_order.ppt",
|
||||||
|
new String[]{
|
||||||
|
"Slide 1",
|
||||||
|
"Slide 2",
|
||||||
|
"Slide 3"
|
||||||
|
});
|
||||||
|
|
||||||
|
assertSlideOrdering(dirname + "/next_test_ppt_file.ppt",
|
||||||
|
new String[]{
|
||||||
|
"This is a test title",
|
||||||
|
"This is the title on page 2"
|
||||||
|
});
|
||||||
|
String a = "’";
|
||||||
|
System.err.println((int)(a.toCharArray()[0]));
|
||||||
|
|
||||||
|
assertSlideOrdering(dirname + "/Single_Coloured_Page.ppt",
|
||||||
|
new String[]{
|
||||||
|
"This is a title, it" + (char)0x2019 +"s in black"
|
||||||
|
});
|
||||||
|
|
||||||
|
assertSlideOrdering(dirname + "/Single_Coloured_Page_With_Fonts_and_Alignments.ppt",
|
||||||
|
new String[]{
|
||||||
|
"This is a title, it"+ (char)0x2019 +"s in black"
|
||||||
|
});
|
||||||
|
|
||||||
|
assertSlideOrdering(dirname + "/ParagraphStylesShorterThanCharStyles.ppt",
|
||||||
|
new String[]{
|
||||||
|
"ROMANCE: AN ANALYSIS",
|
||||||
|
"AGENDA",
|
||||||
|
"You are an important supplier of various items that I need",
|
||||||
|
(char)0x0B + "Although The Psycho set back my relationship process, recovery is luckily enough under way",
|
||||||
|
"Since the time that we seriously go out together, you rank highly among existing relationships",
|
||||||
|
"Although our personal interests are mostly compatible, the greatest gap exists in Sex and Shopping",
|
||||||
|
"Your physical characteristics are strong when compared with your competition",
|
||||||
|
"The combination of your high physical appearance and personality rank you highly, although your sister is also a top prospect",
|
||||||
|
"When people found out that we were going out, their responses have been mixed",
|
||||||
|
"The benchmark of relationship lifecycles, suggests that we are on schedule",
|
||||||
|
"In summary we can say that we are on the right track, but we must remain aware of possible roadblocks ",
|
||||||
|
"THE ANSWER",
|
||||||
|
"Unfortunately a huge disconnect exists between my needs and your existing service",
|
||||||
|
"SUMMARY",
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user