From d246052993507af64a2aee9141dfefd5a3f294d8 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Thu, 13 Jun 2013 18:52:03 +0000 Subject: [PATCH] Fix and update JavaDoc entries, and correct areas with wildy inconsistent whitespace / style to the surrounding code git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1492818 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/poi/xwpf/usermodel/IBody.java | 2 +- .../poi/xwpf/usermodel/XWPFDocument.java | 375 +++++++------ .../poi/xwpf/usermodel/XWPFFootnote.java | 66 +-- .../poi/xwpf/usermodel/XWPFFootnotes.java | 88 +-- .../poi/xwpf/usermodel/XWPFHeaderFooter.java | 22 +- .../poi/xwpf/usermodel/XWPFParagraph.java | 108 ++-- .../apache/poi/xwpf/usermodel/XWPFTable.java | 505 +++++++++--------- .../poi/xwpf/usermodel/XWPFTableCell.java | 54 +- .../poi/xwpf/usermodel/XWPFTableRow.java | 8 +- 9 files changed, 614 insertions(+), 614 deletions(-) diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/IBody.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/IBody.java index 55ee9accf8..e035888110 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/IBody.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/IBody.java @@ -44,7 +44,7 @@ public interface IBody { /** * get the PartType of the body, for example - * DOCUMENT, HEADER, FOOTER, FOOTNOTE, + * DOCUMENT, HEADER, FOOTER, FOOTNOTE, * @return the PartType of the body */ public BodyType getPartType(); diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java index ca1711ffea..0f79a6e6b1 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java @@ -110,31 +110,31 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { private XWPFHeaderFooterPolicy headerFooterPolicy; public XWPFDocument(OPCPackage pkg) throws IOException { - super(pkg); + super(pkg); - //build a tree of POIXMLDocumentParts, this document being the root - load(XWPFFactory.getInstance()); + //build a tree of POIXMLDocumentParts, this document being the root + load(XWPFFactory.getInstance()); } public XWPFDocument(InputStream is) throws IOException { - super(PackageHelper.open(is)); + super(PackageHelper.open(is)); - //build a tree of POIXMLDocumentParts, this workbook being the root - load(XWPFFactory.getInstance()); + //build a tree of POIXMLDocumentParts, this workbook being the root + load(XWPFFactory.getInstance()); } public XWPFDocument(){ - super(newPackage()); - onDocumentCreate(); + super(newPackage()); + onDocumentCreate(); } @Override protected void onDocumentRead() throws IOException { - try { - DocumentDocument doc = DocumentDocument.Factory.parse(getPackagePart().getInputStream()); - ctDocument = doc.getDocument(); + try { + DocumentDocument doc = DocumentDocument.Factory.parse(getPackagePart().getInputStream()); + ctDocument = doc.getDocument(); - initFootnotes(); + initFootnotes(); // parse the document with cursor and add // the XmlObject to its lists @@ -193,15 +193,15 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { // We don't currently process the glossary itself // Until we do, we do need to load the glossary child parts of it for (POIXMLDocumentPart gp : p.getRelations()) { - // Trigger the onDocumentRead for all the child parts - // Otherwise we'll hit issues on Styles, Settings etc on save - try { - Method onDocumentRead = gp.getClass().getDeclaredMethod("onDocumentRead"); - onDocumentRead.setAccessible(true); - onDocumentRead.invoke(gp); - } catch(Exception e) { - throw new POIXMLException(e); - } + // Trigger the onDocumentRead for all the child parts + // Otherwise we'll hit issues on Styles, Settings etc on save + try { + Method onDocumentRead = gp.getClass().getDeclaredMethod("onDocumentRead"); + onDocumentRead.setAccessible(true); + onDocumentRead.invoke(gp); + } catch(Exception e) { + throw new POIXMLException(e); + } } } } @@ -212,39 +212,39 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { } private void initHyperlinks(){ - // Get the hyperlinks - // TODO: make me optional/separated in private function - try { - Iterator relIter = - getPackagePart().getRelationshipsByType(XWPFRelation.HYPERLINK.getRelation()).iterator(); - while(relIter.hasNext()) { - PackageRelationship rel = relIter.next(); - hyperlinks.add(new XWPFHyperlink(rel.getId(), rel.getTargetURI().toString())); - } - } catch (InvalidFormatException e){ - throw new POIXMLException(e); - } + // Get the hyperlinks + // TODO: make me optional/separated in private function + try { + Iterator relIter = + getPackagePart().getRelationshipsByType(XWPFRelation.HYPERLINK.getRelation()).iterator(); + while(relIter.hasNext()) { + PackageRelationship rel = relIter.next(); + hyperlinks.add(new XWPFHyperlink(rel.getId(), rel.getTargetURI().toString())); + } + } catch (InvalidFormatException e){ + throw new POIXMLException(e); + } } private void initFootnotes() throws XmlException, IOException { - for(POIXMLDocumentPart p : getRelations()){ - String relation = p.getPackageRelationship().getRelationshipType(); - if (relation.equals(XWPFRelation.FOOTNOTE.getRelation())) { - FootnotesDocument footnotesDocument = FootnotesDocument.Factory.parse(p.getPackagePart().getInputStream()); - this.footnotes = (XWPFFootnotes)p; - this.footnotes.onDocumentRead(); - - for(CTFtnEdn ctFtnEdn : footnotesDocument.getFootnotes().getFootnoteList()) { - footnotes.addFootnote(ctFtnEdn); - } - } else if (relation.equals(XWPFRelation.ENDNOTE.getRelation())){ - EndnotesDocument endnotesDocument = EndnotesDocument.Factory.parse(p.getPackagePart().getInputStream()); - - for(CTFtnEdn ctFtnEdn : endnotesDocument.getEndnotes().getEndnoteList()) { - endnotes.put(ctFtnEdn.getId().intValue(), new XWPFFootnote(this, ctFtnEdn)); - } - } - } + for(POIXMLDocumentPart p : getRelations()){ + String relation = p.getPackageRelationship().getRelationshipType(); + if (relation.equals(XWPFRelation.FOOTNOTE.getRelation())) { + FootnotesDocument footnotesDocument = FootnotesDocument.Factory.parse(p.getPackagePart().getInputStream()); + this.footnotes = (XWPFFootnotes)p; + this.footnotes.onDocumentRead(); + + for(CTFtnEdn ctFtnEdn : footnotesDocument.getFootnotes().getFootnoteList()) { + footnotes.addFootnote(ctFtnEdn); + } + } else if (relation.equals(XWPFRelation.ENDNOTE.getRelation())){ + EndnotesDocument endnotesDocument = EndnotesDocument.Factory.parse(p.getPackagePart().getInputStream()); + + for(CTFtnEdn ctFtnEdn : endnotesDocument.getEndnotes().getEndnoteList()) { + endnotes.put(ctFtnEdn.getId().intValue(), new XWPFFootnote(this, ctFtnEdn)); + } + } + } } /** @@ -287,11 +287,11 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { */ @Internal public CTDocument1 getDocument() { - return ctDocument; + return ctDocument; } IdentifierManager getDrawingIdManager() { - return drawingIdManager; + return drawingIdManager; } /** @@ -299,35 +299,35 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { * @see org.apache.poi.xwpf.usermodel.IBody#getBodyElements() */ public List getBodyElements() { - return Collections.unmodifiableList(bodyElements); + return Collections.unmodifiableList(bodyElements); } public Iterator getBodyElementsIterator() { - return bodyElements.iterator(); + return bodyElements.iterator(); } /** * @see org.apache.poi.xwpf.usermodel.IBody#getParagraphs() */ public List getParagraphs(){ - return Collections.unmodifiableList(paragraphs); + return Collections.unmodifiableList(paragraphs); } /** * @see org.apache.poi.xwpf.usermodel.IBody#getTables() */ public List getTables(){ - return Collections.unmodifiableList(tables); + return Collections.unmodifiableList(tables); } /** * @see org.apache.poi.xwpf.usermodel.IBody#getTableArray(int) */ public XWPFTable getTableArray(int pos) { - if(pos > 0 && pos < tables.size()){ - return tables.get(pos); - } - return null; + if (pos > 0 && pos < tables.size()){ + return tables.get(pos); + } + return null; } /** @@ -335,11 +335,11 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { * @return the list of footers */ public List getFooterList(){ - return Collections.unmodifiableList(footers); + return Collections.unmodifiableList(footers); } public XWPFFooter getFooterArray(int pos){ - return footers.get(pos); + return footers.get(pos); } /** @@ -347,62 +347,62 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { * @return the list of headers */ public List getHeaderList(){ - return Collections.unmodifiableList(headers); + return Collections.unmodifiableList(headers); } public XWPFHeader getHeaderArray(int pos){ - return headers.get(pos); + return headers.get(pos); } public String getTblStyle(XWPFTable table){ - return table.getStyleID(); + return table.getStyleID(); } public XWPFHyperlink getHyperlinkByID(String id) { - Iterator iter = hyperlinks.iterator(); - while (iter.hasNext()) { - XWPFHyperlink link = iter.next(); - if(link.getId().equals(id)) - return link; - } + Iterator iter = hyperlinks.iterator(); + while (iter.hasNext()) { + XWPFHyperlink link = iter.next(); + if(link.getId().equals(id)) + return link; + } - return null; + return null; } public XWPFFootnote getFootnoteByID(int id) { - if(footnotes == null) return null; - return footnotes.getFootnoteById(id); + if(footnotes == null) return null; + return footnotes.getFootnoteById(id); } public XWPFFootnote getEndnoteByID(int id) { - if(endnotes == null) return null; - return endnotes.get(id); + if(endnotes == null) return null; + return endnotes.get(id); } public List getFootnotes() { - if(footnotes == null) { - return Collections.emptyList(); - } - return footnotes.getFootnotesList(); + if(footnotes == null) { + return Collections.emptyList(); + } + return footnotes.getFootnotesList(); } public XWPFHyperlink[] getHyperlinks() { - return hyperlinks.toArray(new XWPFHyperlink[hyperlinks.size()]); + return hyperlinks.toArray(new XWPFHyperlink[hyperlinks.size()]); } public XWPFComment getCommentByID(String id) { - Iterator iter = comments.iterator(); - while (iter.hasNext()) { - XWPFComment comment = iter.next(); - if(comment.getId().equals(id)) - return comment; - } + Iterator iter = comments.iterator(); + while (iter.hasNext()) { + XWPFComment comment = iter.next(); + if(comment.getId().equals(id)) + return comment; + } - return null; + return null; } public XWPFComment[] getComments() { - return comments.toArray(new XWPFComment[comments.size()]); + return comments.toArray(new XWPFComment[comments.size()]); } /** @@ -622,18 +622,18 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { XmlCursor tableCursor = t.newCursor(); try { cursor.toCursor(tableCursor); - while (cursor.toPrevSibling()) { - o = cursor.getObject(); - if (o instanceof CTP || o instanceof CTTbl) - i++; + while (cursor.toPrevSibling()) { + o = cursor.getObject(); + if (o instanceof CTP || o instanceof CTTbl) + i++; + } + bodyElements.add(i, newT); + cursor.toCursor(tableCursor); + cursor.toEndToken(); + return newT; } - bodyElements.add(i, newT); - cursor.toCursor(tableCursor); - cursor.toEndToken(); - return newT; - } finally { - tableCursor.dispose(); + tableCursor.dispose(); } } return null; @@ -644,27 +644,27 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { * @param cursor */ private boolean isCursorInBody(XmlCursor cursor) { - XmlCursor verify = cursor.newCursor(); - verify.toParent(); - try { - return (verify.getObject() == this.ctDocument.getBody()); - } finally { - verify.dispose(); - } + XmlCursor verify = cursor.newCursor(); + verify.toParent(); + try { + return (verify.getObject() == this.ctDocument.getBody()); + } finally { + verify.dispose(); + } } private int getPosOfBodyElement(IBodyElement needle) { - BodyElementType type = needle.getElementType(); - IBodyElement current; - for(int i=0; i map = new HashMap(); - map.put("http://schemas.openxmlformats.org/officeDocument/2006/math", "m"); - map.put("urn:schemas-microsoft-com:office:office", "o"); - map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r"); - map.put("urn:schemas-microsoft-com:vml", "v"); - map.put("http://schemas.openxmlformats.org/markup-compatibility/2006", "ve"); - map.put("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w"); - map.put("urn:schemas-microsoft-com:office:word", "w10"); - map.put("http://schemas.microsoft.com/office/word/2006/wordml", "wne"); - map.put("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "wp"); - xmlOptions.setSaveSuggestedPrefixes(map); - - PackagePart part = getPackagePart(); - OutputStream out = part.getOutputStream(); - ctDocument.save(out, xmlOptions); - out.close(); + XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS); + xmlOptions.setSaveSyntheticDocumentElement(new QName(CTDocument1.type.getName().getNamespaceURI(), "document")); + Map map = new HashMap(); + map.put("http://schemas.openxmlformats.org/officeDocument/2006/math", "m"); + map.put("urn:schemas-microsoft-com:office:office", "o"); + map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r"); + map.put("urn:schemas-microsoft-com:vml", "v"); + map.put("http://schemas.openxmlformats.org/markup-compatibility/2006", "ve"); + map.put("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w"); + map.put("urn:schemas-microsoft-com:office:word", "w10"); + map.put("http://schemas.microsoft.com/office/word/2006/wordml", "wne"); + map.put("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "wp"); + xmlOptions.setSaveSuggestedPrefixes(map); + + PackagePart part = getPackagePart(); + OutputStream out = part.getOutputStream(); + ctDocument.save(out, xmlOptions); + out.close(); } /** @@ -813,22 +813,22 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { * @return true if removing was successfully, else return false */ public boolean removeBodyElement(int pos) { - if(pos >= 0 && pos < bodyElements.size()) { - BodyElementType type = bodyElements.get(pos).getElementType(); - if(type == BodyElementType.TABLE){ - int tablePos = getTablePos(pos); - tables.remove(tablePos); - ctDocument.getBody().removeTbl(tablePos); - } - if(type == BodyElementType.PARAGRAPH) { - int paraPos = getParagraphPos(pos); - paragraphs.remove(paraPos); - ctDocument.getBody().removeP(paraPos); - } - bodyElements.remove(pos); - return true; - } - return false; + if (pos >= 0 && pos < bodyElements.size()) { + BodyElementType type = bodyElements.get(pos).getElementType(); + if (type == BodyElementType.TABLE){ + int tablePos = getTablePos(pos); + tables.remove(tablePos); + ctDocument.getBody().removeTbl(tablePos); + } + if (type == BodyElementType.PARAGRAPH) { + int paraPos = getParagraphPos(pos); + paragraphs.remove(paraPos); + ctDocument.getBody().removeP(paraPos); + } + bodyElements.remove(pos); + return true; + } + return false; } /** @@ -1063,7 +1063,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { * */ public void enforceUpdateFields() { - settings.setUpdateFields(); + settings.setUpdateFields(); } /** @@ -1280,13 +1280,12 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { return null; } - public Iterator getTablesIterator() { - return tables.iterator(); + return tables.iterator(); } public Iterator getParagraphsIterator() { - return paragraphs.iterator(); + return paragraphs.iterator(); } /** @@ -1294,10 +1293,10 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { * @see org.apache.poi.xwpf.usermodel.IBody#getParagraphArray(int) */ public XWPFParagraph getParagraphArray(int pos) { - if(pos >= 0 && pos < paragraphs.size()){ - return paragraphs.get(pos); - } - return null; + if(pos >= 0 && pos < paragraphs.size()){ + return paragraphs.get(pos); + } + return null; } /** @@ -1307,7 +1306,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { * @see org.apache.poi.xwpf.usermodel.IBody#getPart() */ public POIXMLDocumentPart getPart() { - return this; + return this; } @@ -1318,7 +1317,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { * @see org.apache.poi.xwpf.usermodel.IBody#getPartType() */ public BodyType getPartType() { - return BodyType.DOCUMENT; + return BodyType.DOCUMENT; } /** @@ -1326,32 +1325,32 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody { * @param cell */ public XWPFTableCell getTableCell(CTTc cell) { - XmlCursor cursor = cell.newCursor(); - cursor.toParent(); - XmlObject o = cursor.getObject(); - if(!(o instanceof CTRow)){ - return null; - } - CTRow row = (CTRow)o; - cursor.toParent(); - o = cursor.getObject(); - cursor.dispose(); - if(! (o instanceof CTTbl)){ - return null; - } - CTTbl tbl = (CTTbl) o; - XWPFTable table = getTable(tbl); - if(table == null){ - return null; - } - XWPFTableRow tableRow = table.getRow(row); - if (tableRow == null) { - return null; - } - return tableRow.getTableCell(cell); + XmlCursor cursor = cell.newCursor(); + cursor.toParent(); + XmlObject o = cursor.getObject(); + if(!(o instanceof CTRow)){ + return null; + } + CTRow row = (CTRow)o; + cursor.toParent(); + o = cursor.getObject(); + cursor.dispose(); + if(! (o instanceof CTTbl)){ + return null; + } + CTTbl tbl = (CTTbl) o; + XWPFTable table = getTable(tbl); + if(table == null){ + return null; + } + XWPFTableRow tableRow = table.getRow(row); + if (tableRow == null) { + return null; + } + return tableRow.getTableCell(cell); } public XWPFDocument getXWPFDocument() { - return this; + return this; } } diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnote.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnote.java index 1977f9527f..96199aa296 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnote.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnote.java @@ -41,13 +41,13 @@ public class XWPFFootnote implements Iterable,IBody { public XWPFFootnote(CTFtnEdn note, XWPFFootnotes xFootnotes) { footnotes = xFootnotes; ctFtnEdn = note; - for (CTP p : ctFtnEdn.getPList()) { + for (CTP p : ctFtnEdn.getPList()) { paragraphs.add(new XWPFParagraph(p, this)); } } public XWPFFootnote(XWPFDocument document, CTFtnEdn body) { - for (CTP p : body.getPList()) { + for (CTP p : body.getPList()) { paragraphs.add(new XWPFParagraph(p, document)); } } @@ -96,7 +96,7 @@ public class XWPFFootnote implements Iterable,IBody { * inserts an existing XWPFTable to the arrays bodyElements and tables * @param pos * @param table - * @see org.apache.poi.xwpf.usermodel.IBody#insertTable(int pos, XWPFTable table) + * @see org.apache.poi.xwpf.usermodel.IBody#insertTable(int pos, XWPFTable table) */ public void insertTable(int pos, XWPFTable table) { bodyElements.add(pos, table); @@ -116,14 +116,14 @@ public class XWPFFootnote implements Iterable,IBody { * the method will return this table * if there is no corresponding {@link XWPFTable} the method will return null * @param ctTable - * @see org.apache.poi.xwpf.usermodel.IBody#getTable(CTTbl ctTable) + * @see org.apache.poi.xwpf.usermodel.IBody#getTable(CTTbl ctTable) */ public XWPFTable getTable(CTTbl ctTable){ for (XWPFTable table : tables) { if(table==null) return null; if(table.getCTTbl().equals(ctTable)) - return table; + return table; } return null; } @@ -135,7 +135,7 @@ public class XWPFFootnote implements Iterable,IBody { * @param p is instance of CTP and is searching for an XWPFParagraph * @return null if there is no XWPFParagraph with an corresponding CTPparagraph in the paragraphList of this header or footer * XWPFParagraph with the correspondig CTP p - * @see org.apache.poi.xwpf.usermodel.IBody#getParagraph(CTP p) + * @see org.apache.poi.xwpf.usermodel.IBody#getParagraph(CTP p) */ public XWPFParagraph getParagraph(CTP p){ for (XWPFParagraph paragraph : paragraphs) { @@ -148,7 +148,7 @@ public class XWPFFootnote implements Iterable,IBody { /** * Returns the paragraph that holds * the text of the header or footer. - * @see org.apache.poi.xwpf.usermodel.IBody#getParagraphArray(int pos) + * @see org.apache.poi.xwpf.usermodel.IBody#getParagraphArray(int pos) */ public XWPFParagraph getParagraphArray(int pos) { @@ -158,7 +158,7 @@ public class XWPFFootnote implements Iterable,IBody { /** * get the TableCell which belongs to the TableCell * @param cell - * @see org.apache.poi.xwpf.usermodel.IBody#getTableCell(CTTc cell) + * @see org.apache.poi.xwpf.usermodel.IBody#getTableCell(CTTc cell) */ public XWPFTableCell getTableCell(CTTc cell) { XmlCursor cursor = cell.newCursor(); @@ -207,7 +207,7 @@ public class XWPFFootnote implements Iterable,IBody { * * @param cursor * @return the inserted table - * @see org.apache.poi.xwpf.usermodel.IBody#insertNewTbl(XmlCursor cursor) + * @see org.apache.poi.xwpf.usermodel.IBody#insertNewTbl(XmlCursor cursor) */ public XWPFTable insertNewTbl(XmlCursor cursor) { if(isCursorInFtn(cursor)){ @@ -248,7 +248,7 @@ public class XWPFFootnote implements Iterable,IBody { * add a new paragraph at position of the cursor * @param cursor * @return the inserted paragraph - * @see org.apache.poi.xwpf.usermodel.IBody#insertNewParagraph(XmlCursor cursor) + * @see org.apache.poi.xwpf.usermodel.IBody#insertNewParagraph(XmlCursor cursor) */ public XWPFParagraph insertNewParagraph(XmlCursor cursor){ if(isCursorInFtn(cursor)){ @@ -284,37 +284,37 @@ public class XWPFFootnote implements Iterable,IBody { return null; } - /** - * add a new table to the end of the footnote - * @param table - * @return the added XWPFTable - */ + /** + * add a new table to the end of the footnote + * @param table + * @return the added XWPFTable + */ public XWPFTable addNewTbl(CTTbl table) { - CTTbl newTable = ctFtnEdn.addNewTbl(); - newTable.set(table); - XWPFTable xTable = new XWPFTable(newTable, this); - tables.add(xTable); - return xTable; + CTTbl newTable = ctFtnEdn.addNewTbl(); + newTable.set(table); + XWPFTable xTable = new XWPFTable(newTable, this); + tables.add(xTable); + return xTable; } - - /** - * add a new paragraph to the end of the footnote - * @param paragraph - * @return the added XWPFParagraph - */ + + /** + * add a new paragraph to the end of the footnote + * @param paragraph + * @return the added XWPFParagraph + */ public XWPFParagraph addNewParagraph(CTP paragraph) { - CTP newPara = ctFtnEdn.addNewP(); - newPara.set(paragraph); - XWPFParagraph xPara = new XWPFParagraph(newPara, this); - paragraphs.add(xPara); - return xPara; + CTP newPara = ctFtnEdn.addNewP(); + newPara.set(paragraph); + XWPFParagraph xPara = new XWPFParagraph(newPara, this); + paragraphs.add(xPara); + return xPara; } - + /** * @see org.apache.poi.xwpf.usermodel.IBody#getXWPFDocument() */ public XWPFDocument getXWPFDocument() { - return footnotes.getXWPFDocument(); + return footnotes.getXWPFDocument(); } /** diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java index 2cb8bd2e68..74dd12613d 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java @@ -55,7 +55,7 @@ public class XWPFFootnotes extends POIXMLDocumentPart { * @param rel the package relationship of type "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes" */ public XWPFFootnotes(PackagePart part, PackageRelationship rel) throws IOException, OpenXML4JException{ - super(part, rel); + super(part, rel); } /** @@ -69,45 +69,45 @@ public class XWPFFootnotes extends POIXMLDocumentPart { */ @Override protected void onDocumentRead () throws IOException { - FootnotesDocument notesDoc; - try { - InputStream is = getPackagePart().getInputStream(); - notesDoc = FootnotesDocument.Factory.parse(is); - ctFootnotes = notesDoc.getFootnotes(); - } catch (XmlException e) { - throw new POIXMLException(); - } - - //get any Footnote - for(CTFtnEdn note : ctFootnotes.getFootnoteList()) { - listFootnote.add(new XWPFFootnote(note, this)); - } + FootnotesDocument notesDoc; + try { + InputStream is = getPackagePart().getInputStream(); + notesDoc = FootnotesDocument.Factory.parse(is); + ctFootnotes = notesDoc.getFootnotes(); + } catch (XmlException e) { + throw new POIXMLException(); + } + + // Find our footnotes + for(CTFtnEdn note : ctFootnotes.getFootnoteList()) { + listFootnote.add(new XWPFFootnote(note, this)); + } } @Override protected void commit() throws IOException { - XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS); - xmlOptions.setSaveSyntheticDocumentElement(new QName(CTFootnotes.type.getName().getNamespaceURI(), "footnotes")); - Map map = new HashMap(); - map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r"); - map.put("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w"); - xmlOptions.setSaveSuggestedPrefixes(map); - PackagePart part = getPackagePart(); - OutputStream out = part.getOutputStream(); - ctFootnotes.save(out, xmlOptions); - out.close(); + XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS); + xmlOptions.setSaveSyntheticDocumentElement(new QName(CTFootnotes.type.getName().getNamespaceURI(), "footnotes")); + Map map = new HashMap(); + map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r"); + map.put("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w"); + xmlOptions.setSaveSuggestedPrefixes(map); + PackagePart part = getPackagePart(); + OutputStream out = part.getOutputStream(); + ctFootnotes.save(out, xmlOptions); + out.close(); } public List getFootnotesList() { - return listFootnote; + return listFootnote; } public XWPFFootnote getFootnoteById(int id) { - for(XWPFFootnote note : listFootnote) { - if(note.getCTFtnEdn().getId().intValue() == id) - return note; - } - return null; + for(XWPFFootnote note : listFootnote) { + if(note.getCTFtnEdn().getId().intValue() == id) + return note; + } + return null; } /** @@ -115,7 +115,7 @@ public class XWPFFootnotes extends POIXMLDocumentPart { * @param footnotes */ public void setFootnotes(CTFootnotes footnotes) { - ctFootnotes = footnotes; + ctFootnotes = footnotes; } /** @@ -124,8 +124,8 @@ public class XWPFFootnotes extends POIXMLDocumentPart { * @throws IOException */ public void addFootnote(XWPFFootnote footnote){ - listFootnote.add(footnote); - ctFootnotes.addNewFootnote().set(footnote.getCTFtnEdn()); + listFootnote.add(footnote); + ctFootnotes.addNewFootnote().set(footnote.getCTFtnEdn()); } /** @@ -134,25 +134,25 @@ public class XWPFFootnotes extends POIXMLDocumentPart { * @throws IOException */ public XWPFFootnote addFootnote(CTFtnEdn note){ - CTFtnEdn newNote = ctFootnotes.addNewFootnote(); - newNote.set(note); - XWPFFootnote xNote = new XWPFFootnote(newNote, this); - listFootnote.add(xNote); - return xNote; + CTFtnEdn newNote = ctFootnotes.addNewFootnote(); + newNote.set(note); + XWPFFootnote xNote = new XWPFFootnote(newNote, this); + listFootnote.add(xNote); + return xNote; } public void setXWPFDocument(XWPFDocument doc) { - document = doc; + document = doc; } /** * @see org.apache.poi.xwpf.usermodel.IBody#getPart() */ public XWPFDocument getXWPFDocument() { - if ( document != null) { - return document; - } else { - return (XWPFDocument)getParent(); - } + if ( document != null) { + return document; + } else { + return (XWPFDocument)getParent(); + } } } diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java index f7f0ba7772..7a2dc9a749 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java @@ -53,7 +53,7 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo CTHdrFtr headerFooter; XWPFDocument document; - XWPFHeaderFooter(XWPFDocument doc, CTHdrFtr hdrFtr){ + XWPFHeaderFooter(XWPFDocument doc, CTHdrFtr hdrFtr) { if (doc==null) { throw new NullPointerException(); } @@ -171,7 +171,7 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo if(table==null) return null; if(table.getCTTbl().equals(ctTable)) - return table; + return table; } return null; } @@ -257,7 +257,7 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo // ignore } } - + document.registerPackagePictureData(xwpfPicData); pictures.add(xwpfPicData); return getRelationId(xwpfPicData); @@ -313,7 +313,7 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo if (relatedPart != null && relatedPart instanceof XWPFPictureData) { return (XWPFPictureData) relatedPart; } - return null; + return null; } /** @@ -499,15 +499,15 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo } public void setXWPFDocument(XWPFDocument doc) { - document = doc; + document = doc; } public XWPFDocument getXWPFDocument() { - if (document!=null) { - return document; - } else { - return (XWPFDocument)getParent(); - } + if (document!=null) { + return document; + } else { + return (XWPFDocument)getParent(); + } } /** @@ -517,4 +517,4 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo public POIXMLDocumentPart getPart() { return this; } -}//end class +} diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java index ff2ef88181..1355ba7964 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java @@ -55,7 +55,11 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff; import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTextAlignment; /** - * Sketch of XWPF paragraph class + *

A Paragraph within a Document, Table, Header etc.

+ * + *

A paragraph has a lot of styling information, but the + * actual text (possibly along with more styling) is held on + * the child {@link XWPFRun}s.

*/ public class XWPFParagraph implements IBodyElement { private final CTP paragraph; @@ -182,25 +186,25 @@ public class XWPFParagraph implements IBodyElement { public String getText() { StringBuffer out = new StringBuffer(); for(XWPFRun run : runs) { - out.append(run.toString()); + out.append(run.toString()); } out.append(footnoteText); return out.toString(); } - + /** * Return styleID of the paragraph if style exist for this paragraph * if not, null will be returned * @return styleID as String */ - public String getStyleID(){ - if (paragraph.getPPr() != null){ - if(paragraph.getPPr().getPStyle()!= null){ - if (paragraph.getPPr().getPStyle().getVal()!= null) - return paragraph.getPPr().getPStyle().getVal(); - } - } - return null; + public String getStyleID() { + if (paragraph.getPPr() != null) { + if(paragraph.getPPr().getPStyle()!= null) { + if (paragraph.getPPr().getPStyle().getVal()!= null) + return paragraph.getPPr().getPStyle().getVal(); + } + } + return null; } /** * If style exist for this paragraph @@ -217,7 +221,7 @@ public class XWPFParagraph implements IBodyElement { } return null; } - + /** * Returns Ilvl of the numeric style for this paragraph. * Returns null if this paragraph does not have numeric style. @@ -261,7 +265,7 @@ public class XWPFParagraph implements IBodyElement { } return null; } - + /** * setNumID of Paragraph * @param numPos @@ -282,22 +286,22 @@ public class XWPFParagraph implements IBodyElement { * paragraph */ public String getParagraphText() { - StringBuffer out = new StringBuffer(); - for(XWPFRun run : runs) { - out.append(run.toString()); - } - return out.toString(); + StringBuffer out = new StringBuffer(); + for(XWPFRun run : runs) { + out.append(run.toString()); + } + return out.toString(); } /** * Returns any text from any suitable pictures in the paragraph */ public String getPictureText() { - StringBuffer out = new StringBuffer(); - for(XWPFRun run : runs) { - out.append(run.getPictureText()); - } - return out.toString(); + StringBuffer out = new StringBuffer(); + for(XWPFRun run : runs) { + out.append(run.getPictureText()); + } + return out.toString(); } /** @@ -383,7 +387,7 @@ public class XWPFParagraph implements IBodyElement { CTPPr pr = getCTPPr(); return (pr == null || !pr.isSetTextAlignment()) ? TextAlignment.AUTO : TextAlignment.valueOf(pr.getTextAlignment().getVal() - .intValue()); + .intValue()); } /** @@ -409,9 +413,9 @@ public class XWPFParagraph implements IBodyElement { CTPPr pr = getCTPPr(); CTTextAlignment textAlignment = pr.isSetTextAlignment() ? pr .getTextAlignment() : pr.addNewTextAlignment(); - STTextAlignment.Enum en = STTextAlignment.Enum - .forInt(valign.getValue()); - textAlignment.setVal(en); + STTextAlignment.Enum en = STTextAlignment.Enum + .forInt(valign.getValue()); + textAlignment.setVal(en); } /** @@ -1162,8 +1166,7 @@ public class XWPFParagraph implements IBodyElement { * @param searched * @param startPos */ - public TextSegement searchText(String searched,PositionInParagraph startPos){ - + public TextSegement searchText(String searched,PositionInParagraph startPos) { int startRun = startPos.getRun(), startText = startPos.getText(), startChar = startPos.getChar(); @@ -1182,7 +1185,8 @@ public class XWPFParagraph implements IBodyElement { if(runPos==startRun) charPos= startChar; else - charPos = 0; + charPos = 0; + for(; charPos= 0 && pos <= paragraph.sizeOfRArray()) { + if (pos >= 0 && pos <= paragraph.sizeOfRArray()) { CTR ctRun = paragraph.insertNewR(pos); XWPFRun newRun = new XWPFRun(ctRun, this); runs.add(pos, newRun); return newRun; - } - return null; + } + return null; } - - - + /** * get a Text * @param segment */ public String getText(TextSegement segment){ - int runBegin = segment.getBeginRun(); - int textBegin = segment.getBeginText(); - int charBegin = segment.getBeginChar(); - int runEnd = segment.getEndRun(); - int textEnd = segment.getEndText(); - int charEnd = segment.getEndChar(); - StringBuffer out = new StringBuffer(); + int runBegin = segment.getBeginRun(); + int textBegin = segment.getBeginText(); + int charBegin = segment.getBeginChar(); + int runEnd = segment.getEndRun(); + int textEnd = segment.getEndText(); + int charEnd = segment.getEndChar(); + StringBuffer out = new StringBuffer(); for(int i=runBegin; i<=runEnd;i++){ int startText=0, endText = paragraph.getRArray(i).getTList().size()-1; if(i==runBegin) @@ -1267,8 +1270,8 @@ public class XWPFParagraph implements IBodyElement { if((j==textEnd)&&(i==runEnd)){ endChar = charEnd; } - out.append(tmpText.substring(startChar, endChar+1)); - + out.append(tmpText.substring(startChar, endChar+1)); + } } return out.toString(); @@ -1280,12 +1283,12 @@ public class XWPFParagraph implements IBodyElement { * @return true if the run was removed */ public boolean removeRun(int pos){ - if (pos >= 0 && pos < paragraph.sizeOfRArray()){ - getCTP().removeR(pos); - runs.remove(pos); - return true; - } - return false; + if (pos >= 0 && pos < paragraph.sizeOfRArray()) { + getCTP().removeR(pos); + runs.remove(pos); + return true; + } + return false; } /** @@ -1345,5 +1348,4 @@ public class XWPFParagraph implements IBodyElement { } return null; } - } diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java index b62f86b34b..8152b25c9d 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java @@ -77,7 +77,7 @@ public class XWPFTable implements IBodyElement { stBorderTypeMap.put(STBorder.INT_DOUBLE, XWPFBorderType.DOUBLE); stBorderTypeMap.put(STBorder.INT_DOTTED, XWPFBorderType.DOTTED); stBorderTypeMap.put(STBorder.INT_DASHED, XWPFBorderType.DASHED); - stBorderTypeMap.put(STBorder.INT_DOT_DASH, XWPFBorderType.DOT_DASH); + stBorderTypeMap.put(STBorder.INT_DOT_DASH, XWPFBorderType.DOT_DASH); } public XWPFTable(CTTbl table, IBody part, int row, int col) { @@ -94,9 +94,9 @@ public class XWPFTable implements IBodyElement { } public XWPFTable(CTTbl table, IBody part){ - this.part = part; + this.part = part; this.ctTbl = table; - + tableRows = new ArrayList(); // is an empty table: I add one row and one column as default @@ -203,7 +203,7 @@ public class XWPFTable implements IBodyElement { public XWPFTableRow getRow(int pos) { if (pos >= 0 && pos < ctTbl.sizeOfTrArray()) { //return new XWPFTableRow(ctTbl.getTrArray(pos)); - return getRows().get(pos); + return getRows().get(pos); } return null; } @@ -277,167 +277,167 @@ public class XWPFTable implements IBodyElement { } public XWPFBorderType getInsideHBorderType() { - XWPFBorderType bt = null; + XWPFBorderType bt = null; - CTTblPr tblPr = getTrPr(); - if (tblPr.isSetTblBorders()) { - CTTblBorders ctb = tblPr.getTblBorders(); - if (ctb.isSetInsideH()) { - CTBorder border = ctb.getInsideH(); - bt = stBorderTypeMap.get(border.getVal().intValue()); - } - } - return bt; + CTTblPr tblPr = getTrPr(); + if (tblPr.isSetTblBorders()) { + CTTblBorders ctb = tblPr.getTblBorders(); + if (ctb.isSetInsideH()) { + CTBorder border = ctb.getInsideH(); + bt = stBorderTypeMap.get(border.getVal().intValue()); + } + } + return bt; } public int getInsideHBorderSize() { - int size = -1; + int size = -1; - CTTblPr tblPr = getTrPr(); - if (tblPr.isSetTblBorders()) { - CTTblBorders ctb = tblPr.getTblBorders(); - if (ctb.isSetInsideH()) { - CTBorder border = ctb.getInsideH(); - size = border.getSz().intValue(); - } - } - return size; + CTTblPr tblPr = getTrPr(); + if (tblPr.isSetTblBorders()) { + CTTblBorders ctb = tblPr.getTblBorders(); + if (ctb.isSetInsideH()) { + CTBorder border = ctb.getInsideH(); + size = border.getSz().intValue(); + } + } + return size; } public int getInsideHBorderSpace() { - int space = -1; + int space = -1; - CTTblPr tblPr = getTrPr(); - if (tblPr.isSetTblBorders()) { - CTTblBorders ctb = tblPr.getTblBorders(); - if (ctb.isSetInsideH()) { - CTBorder border = ctb.getInsideH(); - space = border.getSpace().intValue(); - } - } - return space; + CTTblPr tblPr = getTrPr(); + if (tblPr.isSetTblBorders()) { + CTTblBorders ctb = tblPr.getTblBorders(); + if (ctb.isSetInsideH()) { + CTBorder border = ctb.getInsideH(); + space = border.getSpace().intValue(); + } + } + return space; } public String getInsideHBorderColor() { - String color = null; + String color = null; - CTTblPr tblPr = getTrPr(); - if (tblPr.isSetTblBorders()) { - CTTblBorders ctb = tblPr.getTblBorders(); - if (ctb.isSetInsideH()) { - CTBorder border = ctb.getInsideH(); - color = border.xgetColor().getStringValue(); - } - } - return color; + CTTblPr tblPr = getTrPr(); + if (tblPr.isSetTblBorders()) { + CTTblBorders ctb = tblPr.getTblBorders(); + if (ctb.isSetInsideH()) { + CTBorder border = ctb.getInsideH(); + color = border.xgetColor().getStringValue(); + } + } + return color; } public XWPFBorderType getInsideVBorderType() { - XWPFBorderType bt = null; + XWPFBorderType bt = null; - CTTblPr tblPr = getTrPr(); - if (tblPr.isSetTblBorders()) { - CTTblBorders ctb = tblPr.getTblBorders(); - if (ctb.isSetInsideV()) { - CTBorder border = ctb.getInsideV(); - bt = stBorderTypeMap.get(border.getVal().intValue()); - } - } - return bt; + CTTblPr tblPr = getTrPr(); + if (tblPr.isSetTblBorders()) { + CTTblBorders ctb = tblPr.getTblBorders(); + if (ctb.isSetInsideV()) { + CTBorder border = ctb.getInsideV(); + bt = stBorderTypeMap.get(border.getVal().intValue()); + } + } + return bt; } public int getInsideVBorderSize() { - int size = -1; + int size = -1; - CTTblPr tblPr = getTrPr(); - if (tblPr.isSetTblBorders()) { - CTTblBorders ctb = tblPr.getTblBorders(); - if (ctb.isSetInsideV()) { - CTBorder border = ctb.getInsideV(); - size = border.getSz().intValue(); - } - } - return size; + CTTblPr tblPr = getTrPr(); + if (tblPr.isSetTblBorders()) { + CTTblBorders ctb = tblPr.getTblBorders(); + if (ctb.isSetInsideV()) { + CTBorder border = ctb.getInsideV(); + size = border.getSz().intValue(); + } + } + return size; } public int getInsideVBorderSpace() { - int space = -1; + int space = -1; - CTTblPr tblPr = getTrPr(); - if (tblPr.isSetTblBorders()) { - CTTblBorders ctb = tblPr.getTblBorders(); - if (ctb.isSetInsideV()) { - CTBorder border = ctb.getInsideV(); - space = border.getSpace().intValue(); - } - } - return space; + CTTblPr tblPr = getTrPr(); + if (tblPr.isSetTblBorders()) { + CTTblBorders ctb = tblPr.getTblBorders(); + if (ctb.isSetInsideV()) { + CTBorder border = ctb.getInsideV(); + space = border.getSpace().intValue(); + } + } + return space; } public String getInsideVBorderColor() { - String color = null; + String color = null; - CTTblPr tblPr = getTrPr(); - if (tblPr.isSetTblBorders()) { - CTTblBorders ctb = tblPr.getTblBorders(); - if (ctb.isSetInsideV()) { - CTBorder border = ctb.getInsideV(); - color = border.xgetColor().getStringValue(); - } - } - return color; + CTTblPr tblPr = getTrPr(); + if (tblPr.isSetTblBorders()) { + CTTblBorders ctb = tblPr.getTblBorders(); + if (ctb.isSetInsideV()) { + CTBorder border = ctb.getInsideV(); + color = border.xgetColor().getStringValue(); + } + } + return color; } public int getRowBandSize() { - int size = 0; - CTTblPr tblPr = getTrPr(); - if (tblPr.isSetTblStyleRowBandSize()) { - CTDecimalNumber rowSize = tblPr.getTblStyleRowBandSize(); - size = rowSize.getVal().intValue(); - } - return size; + int size = 0; + CTTblPr tblPr = getTrPr(); + if (tblPr.isSetTblStyleRowBandSize()) { + CTDecimalNumber rowSize = tblPr.getTblStyleRowBandSize(); + size = rowSize.getVal().intValue(); + } + return size; } public void setRowBandSize(int size) { - CTTblPr tblPr = getTrPr(); - CTDecimalNumber rowSize = tblPr.isSetTblStyleRowBandSize() ? tblPr.getTblStyleRowBandSize() : tblPr.addNewTblStyleRowBandSize(); - rowSize.setVal(BigInteger.valueOf(size)); + CTTblPr tblPr = getTrPr(); + CTDecimalNumber rowSize = tblPr.isSetTblStyleRowBandSize() ? tblPr.getTblStyleRowBandSize() : tblPr.addNewTblStyleRowBandSize(); + rowSize.setVal(BigInteger.valueOf(size)); } public int getColBandSize() { - int size = 0; - CTTblPr tblPr = getTrPr(); - if (tblPr.isSetTblStyleColBandSize()) { - CTDecimalNumber colSize = tblPr.getTblStyleColBandSize(); - size = colSize.getVal().intValue(); - } - return size; + int size = 0; + CTTblPr tblPr = getTrPr(); + if (tblPr.isSetTblStyleColBandSize()) { + CTDecimalNumber colSize = tblPr.getTblStyleColBandSize(); + size = colSize.getVal().intValue(); + } + return size; } public void setColBandSize(int size) { - CTTblPr tblPr = getTrPr(); - CTDecimalNumber colSize = tblPr.isSetTblStyleColBandSize() ? tblPr.getTblStyleColBandSize() : tblPr.addNewTblStyleColBandSize(); - colSize.setVal(BigInteger.valueOf(size)); + CTTblPr tblPr = getTrPr(); + CTDecimalNumber colSize = tblPr.isSetTblStyleColBandSize() ? tblPr.getTblStyleColBandSize() : tblPr.addNewTblStyleColBandSize(); + colSize.setVal(BigInteger.valueOf(size)); } public void setInsideHBorder(XWPFBorderType type, int size, int space, String rgbColor) { - CTTblPr tblPr = getTrPr(); - CTTblBorders ctb = tblPr.isSetTblBorders() ? tblPr.getTblBorders() : tblPr.addNewTblBorders(); - CTBorder b = ctb.isSetInsideH() ? ctb.getInsideH() : ctb.addNewInsideH(); - b.setVal(xwpfBorderTypeMap.get(type)); - b.setSz(BigInteger.valueOf(size)); - b.setSpace(BigInteger.valueOf(space)); - b.setColor(rgbColor); + CTTblPr tblPr = getTrPr(); + CTTblBorders ctb = tblPr.isSetTblBorders() ? tblPr.getTblBorders() : tblPr.addNewTblBorders(); + CTBorder b = ctb.isSetInsideH() ? ctb.getInsideH() : ctb.addNewInsideH(); + b.setVal(xwpfBorderTypeMap.get(type)); + b.setSz(BigInteger.valueOf(size)); + b.setSpace(BigInteger.valueOf(space)); + b.setColor(rgbColor); } public void setInsideVBorder(XWPFBorderType type, int size, int space, String rgbColor) { - CTTblPr tblPr = getTrPr(); - CTTblBorders ctb = tblPr.isSetTblBorders() ? tblPr.getTblBorders() : tblPr.addNewTblBorders(); - CTBorder b = ctb.isSetInsideV() ? ctb.getInsideV() : ctb.addNewInsideV(); - b.setVal(xwpfBorderTypeMap.get(type)); - b.setSz(BigInteger.valueOf(size)); - b.setSpace(BigInteger.valueOf(space)); - b.setColor(rgbColor); + CTTblPr tblPr = getTrPr(); + CTTblBorders ctb = tblPr.isSetTblBorders() ? tblPr.getTblBorders() : tblPr.addNewTblBorders(); + CTBorder b = ctb.isSetInsideV() ? ctb.getInsideV() : ctb.addNewInsideV(); + b.setVal(xwpfBorderTypeMap.get(type)); + b.setSz(BigInteger.valueOf(size)); + b.setSpace(BigInteger.valueOf(space)); + b.setColor(rgbColor); } public int getCellMarginTop() { @@ -445,10 +445,10 @@ public class XWPFTable implements IBodyElement { CTTblPr tblPr = getTrPr(); CTTblCellMar tcm = tblPr.getTblCellMar(); if (tcm != null) { - CTTblWidth tw = tcm.getTop(); - if (tw != null) { - margin = tw.getW().intValue(); - } + CTTblWidth tw = tcm.getTop(); + if (tw != null) { + margin = tw.getW().intValue(); + } } return margin; } @@ -458,10 +458,10 @@ public class XWPFTable implements IBodyElement { CTTblPr tblPr = getTrPr(); CTTblCellMar tcm = tblPr.getTblCellMar(); if (tcm != null) { - CTTblWidth tw = tcm.getLeft(); - if (tw != null) { - margin = tw.getW().intValue(); - } + CTTblWidth tw = tcm.getLeft(); + if (tw != null) { + margin = tw.getW().intValue(); + } } return margin; } @@ -471,46 +471,46 @@ public class XWPFTable implements IBodyElement { CTTblPr tblPr = getTrPr(); CTTblCellMar tcm = tblPr.getTblCellMar(); if (tcm != null) { - CTTblWidth tw = tcm.getBottom(); - if (tw != null) { - margin = tw.getW().intValue(); - } + CTTblWidth tw = tcm.getBottom(); + if (tw != null) { + margin = tw.getW().intValue(); + } } return margin; } public int getCellMarginRight() { - int margin = 0; - CTTblPr tblPr = getTrPr(); - CTTblCellMar tcm = tblPr.getTblCellMar(); - if (tcm != null) { - CTTblWidth tw = tcm.getRight(); - if (tw != null) { - margin = tw.getW().intValue(); - } - } - return margin; + int margin = 0; + CTTblPr tblPr = getTrPr(); + CTTblCellMar tcm = tblPr.getTblCellMar(); + if (tcm != null) { + CTTblWidth tw = tcm.getRight(); + if (tw != null) { + margin = tw.getW().intValue(); + } + } + return margin; } public void setCellMargins(int top, int left, int bottom, int right) { - CTTblPr tblPr = getTrPr(); - CTTblCellMar tcm = tblPr.isSetTblCellMar() ? tblPr.getTblCellMar() : tblPr.addNewTblCellMar(); + CTTblPr tblPr = getTrPr(); + CTTblCellMar tcm = tblPr.isSetTblCellMar() ? tblPr.getTblCellMar() : tblPr.addNewTblCellMar(); - CTTblWidth tw = tcm.isSetLeft() ? tcm.getLeft() : tcm.addNewLeft(); - tw.setType(STTblWidth.DXA); - tw.setW(BigInteger.valueOf(left)); + CTTblWidth tw = tcm.isSetLeft() ? tcm.getLeft() : tcm.addNewLeft(); + tw.setType(STTblWidth.DXA); + tw.setW(BigInteger.valueOf(left)); - tw = tcm.isSetTop() ? tcm.getTop() : tcm.addNewTop(); - tw.setType(STTblWidth.DXA); - tw.setW(BigInteger.valueOf(top)); + tw = tcm.isSetTop() ? tcm.getTop() : tcm.addNewTop(); + tw.setType(STTblWidth.DXA); + tw.setW(BigInteger.valueOf(top)); - tw = tcm.isSetBottom() ? tcm.getBottom() : tcm.addNewBottom(); - tw.setType(STTblWidth.DXA); - tw.setW(BigInteger.valueOf(bottom)); + tw = tcm.isSetBottom() ? tcm.getBottom() : tcm.addNewBottom(); + tw.setType(STTblWidth.DXA); + tw.setW(BigInteger.valueOf(bottom)); - tw = tcm.isSetRight() ? tcm.getRight() : tcm.addNewRight(); - tw.setType(STTblWidth.DXA); - tw.setW(BigInteger.valueOf(right)); + tw = tcm.isSetRight() ? tcm.getRight() : tcm.addNewRight(); + tw.setType(STTblWidth.DXA); + tw.setW(BigInteger.valueOf(right)); } /** @@ -518,103 +518,102 @@ public class XWPFTable implements IBodyElement { * * @param row the row which should be added */ - public void addRow(XWPFTableRow row){ - ctTbl.addNewTr(); - ctTbl.setTrArray(getNumberOfRows()-1, row.getCtRow()); - tableRows.add(row); - } - - /** - * add a new Row to the table - * at position pos - * @param row the row which should be added - */ - public boolean addRow(XWPFTableRow row, int pos){ - if(pos >= 0 && pos <= tableRows.size()){ - ctTbl.insertNewTr(pos); - ctTbl.setTrArray(pos,row.getCtRow()); - tableRows.add(pos, row); - return true; - } - return false; - } - - /** - * inserts a new tablerow - * @param pos - * @return the inserted row - */ - public XWPFTableRow insertNewTableRow(int pos){ - if(pos >= 0 && pos <= tableRows.size()){ - CTRow row = ctTbl.insertNewTr(pos); - XWPFTableRow tableRow = new XWPFTableRow(row, this); - tableRows.add(pos, tableRow); - return tableRow; - } - return null; - } - - - /** - * Remove a row at position pos from the table - * @param pos position the Row in the Table - */ - public boolean removeRow(int pos) throws IndexOutOfBoundsException { - if (pos >= 0 && pos < tableRows.size()) { - if (ctTbl.sizeOfTrArray() > 0) { - ctTbl.removeTr(pos); - } - tableRows.remove(pos); - return true; - } - return false; - } - - public List getRows() { - return tableRows; - } - - - /** - * returns the type of the BodyElement Table - * @see org.apache.poi.xwpf.usermodel.IBodyElement#getElementType() - */ - public BodyElementType getElementType() { - return BodyElementType.TABLE; - } - - public IBody getBody() - { - return part; - } - - /** - * returns the part of the bodyElement - * @see org.apache.poi.xwpf.usermodel.IBody#getPart() - */ - public POIXMLDocumentPart getPart() { - if(part != null){ - return part.getPart(); - } - return null; - } - - /** - * returns the partType of the bodyPart which owns the bodyElement - * @see org.apache.poi.xwpf.usermodel.IBody#getPartType() - */ - public BodyType getPartType() { - return part.getPartType(); - } - - /** - * returns the XWPFRow which belongs to the CTRow row - * if this row is not existing in the table null will be returned - */ - public XWPFTableRow getRow(CTRow row) { - for(int i=0; i= 0 && pos <= tableRows.size()){ + ctTbl.insertNewTr(pos); + ctTbl.setTrArray(pos,row.getCtRow()); + tableRows.add(pos, row); + return true; + } + return false; + } + + /** + * inserts a new tablerow + * @param pos + * @return the inserted row + */ + public XWPFTableRow insertNewTableRow(int pos){ + if(pos >= 0 && pos <= tableRows.size()){ + CTRow row = ctTbl.insertNewTr(pos); + XWPFTableRow tableRow = new XWPFTableRow(row, this); + tableRows.add(pos, tableRow); + return tableRow; + } + return null; + } + + + /** + * Remove a row at position pos from the table + * @param pos position the Row in the Table + */ + public boolean removeRow(int pos) throws IndexOutOfBoundsException { + if (pos >= 0 && pos < tableRows.size()) { + if (ctTbl.sizeOfTrArray() > 0) { + ctTbl.removeTr(pos); + } + tableRows.remove(pos); + return true; + } + return false; + } + + public List getRows() { + return tableRows; + } + + + /** + * returns the type of the BodyElement Table + * @see org.apache.poi.xwpf.usermodel.IBodyElement#getElementType() + */ + public BodyElementType getElementType() { + return BodyElementType.TABLE; + } + + public IBody getBody() { + return part; + } + + /** + * returns the part of the bodyElement + * @see org.apache.poi.xwpf.usermodel.IBody#getPart() + */ + public POIXMLDocumentPart getPart() { + if(part != null){ + return part.getPart(); + } + return null; + } + + /** + * returns the partType of the bodyPart which owns the bodyElement + * @see org.apache.poi.xwpf.usermodel.IBody#getPartType() + */ + public BodyType getPartType() { + return part.getPartType(); + } + + /** + * returns the XWPFRow which belongs to the CTRow row + * if this row is not existing in the table null will be returned + */ + public XWPFTableRow getRow(CTRow row) { + for(int i=0; i(); - paragraphs = new ArrayList(); - tables = new ArrayList(); - - XmlCursor cursor = ctTc.newCursor(); - cursor.selectPath("./*"); - while (cursor.toNextSelection()) { - XmlObject o = cursor.getObject(); - if (o instanceof CTP) { - XWPFParagraph p = new XWPFParagraph((CTP)o, this); - paragraphs.add(p); - bodyElements.add(p); - } - if (o instanceof CTTbl) { - XWPFTable t = new XWPFTable((CTTbl)o, this); - tables.add(t); - bodyElements.add(t); - } - } - cursor.dispose(); + this.ctTc = cell; + this.part = part; + this.tableRow = tableRow; + // NB: If a table cell does not include at least one block-level element, then this document shall be considered corrupt. + if(cell.getPList().size()<1) + cell.addNewP(); + bodyElements = new ArrayList(); + paragraphs = new ArrayList(); + tables = new ArrayList(); + + XmlCursor cursor = ctTc.newCursor(); + cursor.selectPath("./*"); + while (cursor.toNextSelection()) { + XmlObject o = cursor.getObject(); + if (o instanceof CTP) { + XWPFParagraph p = new XWPFParagraph((CTP)o, this); + paragraphs.add(p); + bodyElements.add(p); + } + if (o instanceof CTTbl) { + XWPFTable t = new XWPFTable((CTTbl)o, this); + tables.add(t); + bodyElements.add(t); + } + } + cursor.dispose(); } @Internal public CTTc getCTTc() { - return ctTc; + return ctTc; } /** diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java index 312de05405..0d042d5919 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java @@ -40,14 +40,14 @@ public class XWPFTableRow { private List tableCells; public XWPFTableRow(CTRow row, XWPFTable table) { - this.table = table; - this.ctRow = row; - getTableCells(); + this.table = table; + this.ctRow = row; + getTableCells(); } @Internal public CTRow getCtRow() { - return ctRow; + return ctRow; } /** -- 2.39.5