Support adding tabs to a XWPFRun, and add unit tests on toString() for addTab and addCarriageReturn

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1578921 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2014-03-18 14:26:28 +00:00
parent e9ea048c00
commit af381473d0
2 changed files with 38 additions and 3 deletions

View File

@ -712,6 +712,18 @@ public class XWPFRun implements ISDTContents, IRunElement{
br.setClear(STBrClear.Enum.forInt(clear.getValue()));
}
/**
* Specifies that a tab shall be placed at the current location in
* the run content.
*/
public void addTab() {
run.addNewTab();
}
public void removeTab() {
//TODO
}
/**
* Specifies that a carriage return shall be placed at the
* current location in the run content.
@ -897,13 +909,13 @@ public class XWPFRun implements ISDTContents, IRunElement{
// This bit works around it, and replicates the above
// rules for that case
String tagName = o.getDomNode().getNodeName();
if ("w:tab".equals(tagName)) {
if ("w:tab".equals(tagName) || "tab".equals(tagName)) {
text.append("\t");
}
if ("w:br".equals(tagName)) {
if ("w:br".equals(tagName) || "br".equals(tagName)) {
text.append("\n");
}
if ("w:cr".equals(tagName)) {
if ("w:cr".equals(tagName) || "cr".equals(tagName)) {
text.append("\n");
}
}

View File

@ -181,6 +181,29 @@ public class TestXWPFRun extends TestCase {
run.setText("T2");
run.addCarriageReturn();
assertEquals(3, run.getCTR().getCrList().size());
assertEquals("T1\n\nT2\n", run.toString());
}
public void testAddTabsAndLineBreaks() {
ctRun.addNewT().setStringValue("TEST STRING");
ctRun.addNewCr();
ctRun.addNewT().setStringValue("TEST2 STRING");
ctRun.addNewTab();
ctRun.addNewT().setStringValue("TEST3 STRING");
assertEquals(1, ctRun.sizeOfCrArray());
assertEquals(1, ctRun.sizeOfTabArray());
XWPFRun run = new XWPFRun(CTR.Factory.newInstance(), p);
run.setText("T1");
run.addCarriageReturn();
run.setText("T2");
run.addTab();
run.setText("T3");
assertEquals(1, run.getCTR().getCrList().size());
assertEquals(1, run.getCTR().getTabList().size());
assertEquals("T1\nT2\tT3", run.toString());
}
public void testAddPageBreak() {