You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2013/06/13 20:34:55 UTC

svn commit: r1492804 - in /poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel: XWPFFootnotes.java XWPFTable.java XWPFTableCell.java XWPFTableRow.java

Author: nick
Date: Thu Jun 13 18:34:54 2013
New Revision: 1492804

URL: http://svn.apache.org/r1492804
Log:
Fix and update JavaDoc entries, and correct areas with wildy inconsistent whitespace / style to the surrounding code

Modified:
    poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java
    poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java
    poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java
    poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java?rev=1492804&r1=1492803&r2=1492804&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java Thu Jun 13 18:34:54 2013
@@ -41,121 +41,118 @@ import org.openxmlformats.schemas.wordpr
 
 /**
  * Looks after the collection of Footnotes for a document
- *  
- * @author Mike McEuen (mceuen@hp.com)
  */
 public class XWPFFootnotes extends POIXMLDocumentPart {
-   private List<XWPFFootnote> listFootnote = new ArrayList<XWPFFootnote>();
-   private CTFootnotes ctFootnotes;
+    private List<XWPFFootnote> listFootnote = new ArrayList<XWPFFootnote>();
+    private CTFootnotes ctFootnotes;
 
-	protected XWPFDocument document;
+    protected XWPFDocument document;
 
-	/**
-	 * Construct XWPFFootnotes from a package part
-	 *
-	 * @param part the package part holding the data of the footnotes,
-	 * @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);
+    /**
+     * Construct XWPFFootnotes from a package part
+     *
+     * @param part the package part holding the data of the footnotes,
+     * @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);
+    }
+
+    /**
+     * Construct XWPFFootnotes from scratch for a new document.
+     */
+    public XWPFFootnotes() {
+    }
+
+    /**
+     * Read document
+     */
+    @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));
+	}
+    }
+
+    @Override
+    protected void commit() throws IOException {
+	XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS);
+	xmlOptions.setSaveSyntheticDocumentElement(new QName(CTFootnotes.type.getName().getNamespaceURI(), "footnotes"));
+	Map<String,String> map = new HashMap<String,String>();
+	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<XWPFFootnote> getFootnotesList() {
+	return listFootnote;
+    }
+
+    public XWPFFootnote getFootnoteById(int id) {
+	for(XWPFFootnote note : listFootnote) {
+	    if(note.getCTFtnEdn().getId().intValue() == id)
+		return note;
+	}
+	return null;
+    }
+
+    /**
+     * Sets the ctFootnotes
+     * @param footnotes
+     */
+    public void setFootnotes(CTFootnotes footnotes) {
+	ctFootnotes = footnotes;
+    }
+
+    /**
+     * add an XWPFFootnote to the document
+     * @param footnote
+     * @throws IOException		 
+     */
+    public void addFootnote(XWPFFootnote footnote){
+	listFootnote.add(footnote);
+	ctFootnotes.addNewFootnote().set(footnote.getCTFtnEdn());
+    }
+
+    /**
+     * add a footnote to the document
+     * @param note
+     * @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;
+    }
+
+    public void setXWPFDocument(XWPFDocument doc) {
+	document = doc;
+    }
+
+    /**
+     * @see org.apache.poi.xwpf.usermodel.IBody#getPart()
+     */
+    public XWPFDocument getXWPFDocument() {
+	if ( document != null) {
+	    return document;
+	} else {
+	    return (XWPFDocument)getParent();
 	}
-
-	/**
-	 * Construct XWPFFootnotes from scratch for a new document.
-	 */
-	public XWPFFootnotes() {
-	}
-
-	/**
-	 * Read document
-	 */
-	@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));
-	   }
-	}
-	
-	@Override
-	protected void commit() throws IOException {
-		XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS);
-		xmlOptions.setSaveSyntheticDocumentElement(new QName(CTFootnotes.type.getName().getNamespaceURI(), "footnotes"));
-		Map<String,String> map = new HashMap<String,String>();
-		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<XWPFFootnote> getFootnotesList() {
-		return listFootnote;
-	}
-
-	public XWPFFootnote getFootnoteById(int id) {
-		for(XWPFFootnote note : listFootnote) {
-			if(note.getCTFtnEdn().getId().intValue() == id)
-				return note;
-		}
-		return null;
-	}
-	
-	/**
-	 * Sets the ctFootnotes
-	 * @param footnotes
-	 */
-	public void setFootnotes(CTFootnotes footnotes) {
-	   ctFootnotes = footnotes;
-	}
-
-	/**
-	 * add an XWPFFootnote to the document
-	 * @param footnote
-	 * @throws IOException		 
-	 */
-	public void addFootnote(XWPFFootnote footnote){
-	   listFootnote.add(footnote);
-	   ctFootnotes.addNewFootnote().set(footnote.getCTFtnEdn());
-	}
-
-	/**
-	 * add a footnote to the document
-	 * @param note
-	 * @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;
-	}
-
-	public void setXWPFDocument(XWPFDocument doc) {
-	   document = doc;
-	}
-
-	/**
-	 * @see org.apache.poi.xwpf.usermodel.IBody#getPart()
-	 */
-	public XWPFDocument getXWPFDocument() {
-	   if ( document != null) {
-	      return document;
-	   } else {
-	      return (XWPFDocument)getParent();
-	   }
-	}
-}//end class
-
+    }
+}

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java?rev=1492804&r1=1492803&r2=1492804&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java Thu Jun 13 18:34:54 2013
@@ -39,24 +39,11 @@ import org.openxmlformats.schemas.wordpr
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth;
 
 /**
- * Sketch of XWPFTable class. Only table's text is being hold.
- * <p/>
- * Specifies the contents of a table present in the document. A table is a set
- * of paragraphs (and other block-level content) arranged in rows and columns.
- *
- * @author Yury Batrakov (batrakov at gmail.com)
- * @author Gregg Morris (gregg dot morris at gmail dot com) - added 
- *         setStyleID()
- *         getRowBandSize(), setRowBandSize()
- *         getColBandSize(), setColBandSize()
- *         getInsideHBorderType(), getInsideHBorderSize(), getInsideHBorderSpace(), getInsideHBorderColor()
- *         getInsideVBorderType(), getInsideVBorderSize(), getInsideVBorderSpace(), getInsideVBorderColor()
- *         setInsideHBorder(), setInsideVBorder()
- *         getCellMarginTop(), getCellMarginLeft(), getCellMarginBottom(), getCellMarginRight()
- *         setCellMargins()
+ * <p>Sketch of XWPFTable class. Only table's text is being hold.</p>
+ * <p>Specifies the contents of a table present in the document. A table is a set
+ * of paragraphs (and other block-level content) arranged in rows and columns.</p>
  */
-public class XWPFTable implements IBodyElement{
-
+public class XWPFTable implements IBodyElement {
     protected StringBuffer text = new StringBuffer();
     private CTTbl ctTbl;
     protected List<XWPFTableRow> tableRows;
@@ -157,10 +144,10 @@ public class XWPFTable implements IBodyE
         borders.addNewTop().setVal(STBorder.SINGLE);
 
         /*
-       * CTTblGrid tblgrid=table.addNewTblGrid();
-       * tblgrid.addNewGridCol().setW(new BigInteger("2000"));
-       */
-		getRows();
+         * CTTblGrid tblgrid=table.addNewTblGrid();
+         * tblgrid.addNewGridCol().setW(new BigInteger("2000"));
+         */
+        getRows();
     }
 
     /**
@@ -227,8 +214,7 @@ public class XWPFTable implements IBodyE
      */
     public void setWidth(int width) {
         CTTblPr tblPr = getTrPr();
-        CTTblWidth tblWidth = tblPr.isSetTblW() ? tblPr.getTblW() : tblPr
-                .addNewTblW();
+        CTTblWidth tblWidth = tblPr.isSetTblW() ? tblPr.getTblW() : tblPr.addNewTblW();
         tblWidth.setW(new BigInteger("" + width));
     }
 
@@ -291,167 +277,167 @@ public class XWPFTable implements IBodyE
     }
 
     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() {
@@ -494,141 +480,141 @@ public class XWPFTable implements IBodyE
     }
 
     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));
-
-        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.isSetRight() ? tcm.getRight() : tcm.addNewRight();
-        tw.setType(STTblWidth.DXA);
-        tw.setW(BigInteger.valueOf(right));
+	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.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));
     }
-    
+
     /**
      * add a new Row to the table
      * 
      * @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<XWPFTableRow> 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<getRows().size(); i++){
-			if(getRows().get(i).getCtRow()== row) return getRow(i); 
-		}
-		return null;
-	}
-}// end class
+     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<XWPFTableRow> 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<getRows().size(); i++){
+	     if(getRows().get(i).getCtRow()== row) return getRow(i); 
+	 }
+	 return null;
+     }
+}

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java?rev=1492804&r1=1492803&r2=1492804&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java Thu Jun 13 18:34:54 2013
@@ -37,11 +37,8 @@ import org.openxmlformats.schemas.wordpr
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalJc;
 
 /**
- * XWPFTableCell class.
- *
- * @author Gregg Morris (gregg dot morris at gmail dot com) - added XWPFVertAlign enum,
- *         setColor(),
- *         setVerticalAlignment()
+ * Represents a Cell within a {@link XWPFTable}. The
+ *  Cell is the thing that holds the actual content (paragraphs etc)
  */
 public class XWPFTableCell implements IBody {
     private final CTTc ctTc;
@@ -76,38 +73,38 @@ public class XWPFTableCell implements IB
      * If a table cell does not include at least one block-level element, then this document shall be considered corrupt
      */
     public XWPFTableCell(CTTc cell, XWPFTableRow tableRow, IBody part) {
-        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<IBodyElement>();
-        paragraphs = new ArrayList<XWPFParagraph>();
-        tables = new ArrayList<XWPFTable>();
-        
-		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<IBodyElement>();
+	paragraphs = new ArrayList<XWPFParagraph>();
+	tables = new ArrayList<XWPFTable>();
+
+	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;
     }
 
     /**
@@ -168,12 +165,12 @@ public class XWPFTableCell implements IB
 	 * 		   XWPFParagraph with the correspondig CTP p
 	 */
     public XWPFParagraph getParagraph(CTP p){
-    	for (XWPFParagraph paragraph : paragraphs) {
-			if(p.equals(paragraph.getCTP())){
-				return paragraph;
-			}
-		}
-    	return null;
+	for (XWPFParagraph paragraph : paragraphs) {
+	    if(p.equals(paragraph.getCTP())){
+		return paragraph;
+	    }
+	}
+	return null;
     }	
     
     public void setText(String text) {
@@ -204,15 +201,15 @@ public class XWPFTableCell implements IB
      * @return RGB string of cell color
      */
     public String getColor() {
-    	String color = null;
-        CTTcPr tcpr = ctTc.getTcPr();
-        if (tcpr != null) {
-        	CTShd ctshd = tcpr.getShd();
-        	if (ctshd != null) {
-        		color = ctshd.xgetFill().getStringValue();
-        	}
-        }
-    	return color;
+	String color = null;
+	CTTcPr tcpr = ctTc.getTcPr();
+	if (tcpr != null) {
+	    CTShd ctshd = tcpr.getShd();
+	    if (ctshd != null) {
+		color = ctshd.xgetFill().getStringValue();
+	    }
+	}
+	return color;
     }
 
     /**
@@ -230,13 +227,13 @@ public class XWPFTableCell implements IB
      * @return the cell alignment enum value
      */
     public XWPFVertAlign getVerticalAlignment() {
-    	XWPFVertAlign vAlign = null;
-        CTTcPr tcpr = ctTc.getTcPr();
-        if (ctTc != null) {
-        	CTVerticalJc va = tcpr.getVAlign();
-        	vAlign = stVertAlignTypeMap.get(va.getVal().intValue());
-        }
-        return vAlign;
+	XWPFVertAlign vAlign = null;
+	CTTcPr tcpr = ctTc.getTcPr();
+	if (ctTc != null) {
+	    CTVerticalJc va = tcpr.getVAlign();
+	    vAlign = stVertAlignTypeMap.get(va.getVal().intValue());
+	}
+	return vAlign;
     }
 
     /**
@@ -245,97 +242,98 @@ public class XWPFTableCell implements IB
      * @return the inserted paragraph
      */
     public XWPFParagraph insertNewParagraph(XmlCursor cursor){
-    	if(!isCursorInTableCell(cursor))
-    		return null;
-    		
-		String uri = CTP.type.getName().getNamespaceURI();
-		String localPart = "p";
-		cursor.beginElement(localPart,uri);
-		cursor.toParent();
-		CTP p = (CTP)cursor.getObject();
-		XWPFParagraph newP = new XWPFParagraph(p, this);
-		XmlObject o = null;
-    	while(!(o instanceof CTP)&&(cursor.toPrevSibling())){
-    		o = cursor.getObject();
-    	}
-    	if((!(o instanceof CTP)) || (CTP)o == p){
-    		paragraphs.add(0, newP);
-    	}
-    	else{
-    		int pos = paragraphs.indexOf(getParagraph((CTP)o))+1;
-    		paragraphs.add(pos,newP);
-    	}
-    	int i=0;
-    	cursor.toCursor(p.newCursor());
-		while(cursor.toPrevSibling()){
-			o =cursor.getObject();
-			if(o instanceof CTP || o instanceof CTTbl)
-				i++;
-		}
-		bodyElements.add(i, newP);
-    	cursor.toCursor(p.newCursor());
-    	cursor.toEndToken();
-    	return newP;
-    }
-
-	public XWPFTable insertNewTbl(XmlCursor cursor) {
-		if(isCursorInTableCell(cursor)){
-			String uri = CTTbl.type.getName().getNamespaceURI();
-			String localPart = "tbl";
-    		cursor.beginElement(localPart,uri);
-			cursor.toParent();
-			CTTbl t = (CTTbl)cursor.getObject();
-			XWPFTable newT = new XWPFTable(t, this);
-			cursor.removeXmlContents();
-			XmlObject o = null;
-			while(!(o instanceof CTTbl)&&(cursor.toPrevSibling())){
-				o = cursor.getObject();
-			}
-			if(!(o instanceof CTTbl)){
-				tables.add(0, newT);
-			}
-			else{
-				int pos = tables.indexOf(getTable((CTTbl)o))+1;
-				tables.add(pos,newT);
-			}
-			int i=0;
-			cursor = t.newCursor();
-			while(cursor.toPrevSibling()){
-				o =cursor.getObject();
-				if(o instanceof CTP || o instanceof CTTbl)
-					i++;
-			}
-			bodyElements.add(i, newT);
-			cursor = t.newCursor();
-			cursor.toEndToken();
-			return newT;
-		}
-		return null;
+	if(!isCursorInTableCell(cursor)) {
+	    return null;
 	}
-	
-	/**
-	 * verifies that cursor is on the right position
-	 */
-	private boolean isCursorInTableCell(XmlCursor cursor) {
-		XmlCursor verify = cursor.newCursor();
-		verify.toParent();
-		if(verify.getObject() == this.ctTc){
-			return true;
-		}
-		return false;
+
+	String uri = CTP.type.getName().getNamespaceURI();
+	String localPart = "p";
+	cursor.beginElement(localPart,uri);
+	cursor.toParent();
+	CTP p = (CTP)cursor.getObject();
+	XWPFParagraph newP = new XWPFParagraph(p, this);
+	XmlObject o = null;
+	while(!(o instanceof CTP)&&(cursor.toPrevSibling())){
+	    o = cursor.getObject();
+	}
+	if((!(o instanceof CTP)) || (CTP)o == p){
+	    paragraphs.add(0, newP);
+	}
+	else{
+	    int pos = paragraphs.indexOf(getParagraph((CTP)o))+1;
+	    paragraphs.add(pos,newP);
+	}
+	int i=0;
+	cursor.toCursor(p.newCursor());
+	while(cursor.toPrevSibling()){
+	    o =cursor.getObject();
+	    if(o instanceof CTP || o instanceof CTTbl)
+		i++;
+	}
+	bodyElements.add(i, newP);
+	cursor.toCursor(p.newCursor());
+	cursor.toEndToken();
+	return newP;
+    }
+
+    public XWPFTable insertNewTbl(XmlCursor cursor) {
+	if(isCursorInTableCell(cursor)){
+	    String uri = CTTbl.type.getName().getNamespaceURI();
+	    String localPart = "tbl";
+	    cursor.beginElement(localPart,uri);
+	    cursor.toParent();
+	    CTTbl t = (CTTbl)cursor.getObject();
+	    XWPFTable newT = new XWPFTable(t, this);
+	    cursor.removeXmlContents();
+	    XmlObject o = null;
+	    while(!(o instanceof CTTbl)&&(cursor.toPrevSibling())){
+		o = cursor.getObject();
+	    }
+	    if(!(o instanceof CTTbl)){
+		tables.add(0, newT);
+	    }
+	    else{
+		int pos = tables.indexOf(getTable((CTTbl)o))+1;
+		tables.add(pos,newT);
+	    }
+	    int i=0;
+	    cursor = t.newCursor();
+	    while(cursor.toPrevSibling()){
+		o =cursor.getObject();
+		if(o instanceof CTP || o instanceof CTTbl)
+		    i++;
+	    }
+	    bodyElements.add(i, newT);
+	    cursor = t.newCursor();
+	    cursor.toEndToken();
+	    return newT;
 	}
+	return null;
+    }
+
+    /**
+     * verifies that cursor is on the right position
+     */
+    private boolean isCursorInTableCell(XmlCursor cursor) {
+	XmlCursor verify = cursor.newCursor();
+	verify.toParent();
+	if(verify.getObject() == this.ctTc){
+	    return true;
+	}
+	return false;
+    }
 
-	
 
-	/**
-	 * @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;
+
+    /**
+     * @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;
+    }
 
     /**
      * get the to which the TableCell belongs
@@ -346,101 +344,100 @@ public class XWPFTableCell implements IB
         return tableRow.getTable().getPart();
     }
 
+    /** 
+     * @see org.apache.poi.xwpf.usermodel.IBody#getPartType()
+     */
+    public BodyType getPartType() {
+	return BodyType.TABLECELL;
+    }
 
-	/** 
-	 * @see org.apache.poi.xwpf.usermodel.IBody#getPartType()
-	 */
-	public BodyType getPartType() {
-		return BodyType.TABLECELL;
+
+    /**
+     * get a table by its CTTbl-Object
+     * @see org.apache.poi.xwpf.usermodel.IBody#getTable(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl)
+     */
+    public XWPFTable getTable(CTTbl ctTable) {
+	for(int i=0; i<tables.size(); i++){
+	    if(getTables().get(i).getCTTbl() == ctTable) return getTables().get(i); 
 	}
+	return null;
+    }
 
 
-	/**
-	 * get a table by its CTTbl-Object
-	 * @see org.apache.poi.xwpf.usermodel.IBody#getTable(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl)
-	 */
-	public XWPFTable getTable(CTTbl ctTable) {
-		for(int i=0; i<tables.size(); i++){
-			if(getTables().get(i).getCTTbl() == ctTable) return getTables().get(i); 
-		}
-		return null;
+    /** 
+     * @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;
+    }
 
 
-	/** 
-	 * @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;
-	}
+    /** 
+     * @see org.apache.poi.xwpf.usermodel.IBody#getTables()
+     */
+    public List<XWPFTable> getTables() {
+	return Collections.unmodifiableList(tables);
+    }
 
 
-	/** 
-	 * @see org.apache.poi.xwpf.usermodel.IBody#getTables()
-	 */
-	public List<XWPFTable> getTables() {
-		return Collections.unmodifiableList(tables);
+    /**
+     * inserts an existing XWPFTable to the arrays bodyElements and tables
+     * @see org.apache.poi.xwpf.usermodel.IBody#insertTable(int, org.apache.poi.xwpf.usermodel.XWPFTable)
+     */
+    public void insertTable(int pos, XWPFTable table) {
+	bodyElements.add(pos, table);
+	int i;
+	for (i = 0; i < ctTc.getTblList().size(); i++) {
+	    CTTbl tbl = ctTc.getTblArray(i);
+	    if(tbl == table.getCTTbl()){
+		break;
+	    }
 	}
+	tables.add(i, table);
+    }
 
-
-	/**
-	 * inserts an existing XWPFTable to the arrays bodyElements and tables
-	 * @see org.apache.poi.xwpf.usermodel.IBody#insertTable(int, org.apache.poi.xwpf.usermodel.XWPFTable)
-	 */
-	public void insertTable(int pos, XWPFTable table) {
-		bodyElements.add(pos, table);
-		int i;
-    	for (i = 0; i < ctTc.getTblList().size(); i++) {
-			CTTbl tbl = ctTc.getTblArray(i);
-			if(tbl == table.getCTTbl()){
-				break;
-			}
-		}
-		tables.add(i, table);
-	}
-	
-	public String getText(){
-		StringBuffer text = new StringBuffer();
-		for (XWPFParagraph p : paragraphs) {
-			text.append(p.getText());
-		}
-		return text.toString();
+    public String getText(){
+	StringBuffer text = new StringBuffer();
+	for (XWPFParagraph p : paragraphs) {
+	    text.append(p.getText());
 	}
+	return text.toString();
+    }
 
 
-	/**
-	 * get the TableCell which belongs to the TableCell
-	 */
-	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);
+    /**
+     * get the TableCell which belongs to the TableCell
+     */
+    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);
+    }
 
     public XWPFDocument getXWPFDocument() {
-        return part.getXWPFDocument();
+	return part.getXWPFDocument();
     }
-}// end class
+}

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java?rev=1492804&r1=1492803&r2=1492804&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java Thu Jun 13 18:34:54 2013
@@ -30,24 +30,24 @@ import org.openxmlformats.schemas.wordpr
 
 
 /**
- * @author gisellabronzetti
- * @author gregg morris - added removeCell(), setCantSplitRow(), setRepeatHeader()
+ * A row within an {@link XWPFTable}. Rows mostly just have
+ *  sizings and stylings, the interesting content lives inside
+ *  the child {@link XWPFTableCell}s
  */
 public class XWPFTableRow {
-
     private CTRow ctRow;
     private XWPFTable table;
     private List<XWPFTableCell> 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;
     }
 
     /**
@@ -55,31 +55,31 @@ public class XWPFTableRow {
      * @return the newly created XWPFTableCell
      */
     public XWPFTableCell createCell() {
-        XWPFTableCell tableCell = new XWPFTableCell(ctRow.addNewTc(), this, table.getBody());
-        tableCells.add(tableCell);
-        return tableCell;
+	XWPFTableCell tableCell = new XWPFTableCell(ctRow.addNewTc(), this, table.getBody());
+	tableCells.add(tableCell);
+	return tableCell;
     }
 
     public XWPFTableCell getCell(int pos) {
-        if (pos >= 0 && pos < ctRow.sizeOfTcArray()) {
-        	return getTableCells().get(pos);
-        }
-        return null;
+	if (pos >= 0 && pos < ctRow.sizeOfTcArray()) {
+	    return getTableCells().get(pos);
+	}
+	return null;
     }
-    
+
     public void removeCell(int pos) {
-        if (pos >= 0 && pos < ctRow.sizeOfTcArray()) {
-        	tableCells.remove(pos);
-        }    	
+	if (pos >= 0 && pos < ctRow.sizeOfTcArray()) {
+	    tableCells.remove(pos);
+	}    	
     }
     /**
      * adds a new TableCell at the end of this tableRow
      */
     public XWPFTableCell addNewTableCell(){
-    	CTTc cell = ctRow.addNewTc();
-    	XWPFTableCell tableCell = new XWPFTableCell(cell, this, table.getBody());
-    	tableCells.add(tableCell);
-    	return tableCell;
+	CTTc cell = ctRow.addNewTc();
+	XWPFTableCell tableCell = new XWPFTableCell(cell, this, table.getBody());
+	tableCells.add(tableCell);
+	return tableCell;
     }
 
     /**
@@ -93,9 +93,9 @@ public class XWPFTableRow {
      * @param height
      */
     public void setHeight(int height) {
-        CTTrPr properties = getTrPr();
-        CTHeight h = properties.sizeOfTrHeightArray() == 0 ? properties.addNewTrHeight() : properties.getTrHeightArray(0);
-        h.setVal(new BigInteger("" + height));
+	CTTrPr properties = getTrPr();
+	CTHeight h = properties.sizeOfTrHeightArray() == 0 ? properties.addNewTrHeight() : properties.getTrHeightArray(0);
+	h.setVal(new BigInteger("" + height));
     }
 
     /**
@@ -109,101 +109,100 @@ public class XWPFTableRow {
      * @return height
      */
     public int getHeight() {
-        CTTrPr properties = getTrPr();
-        return properties.sizeOfTrHeightArray() == 0 ? 0 : properties.getTrHeightArray(0).getVal().intValue();
+	CTTrPr properties = getTrPr();
+	return properties.sizeOfTrHeightArray() == 0 ? 0 : properties.getTrHeightArray(0).getVal().intValue();
     }
 
     private CTTrPr getTrPr() {
-        return (ctRow.isSetTrPr()) ? ctRow.getTrPr() : ctRow.addNewTrPr();
+	return (ctRow.isSetTrPr()) ? ctRow.getTrPr() : ctRow.addNewTrPr();
     }
-    
+
     public XWPFTable getTable(){
-    	return table;
+	return table;
     }
-    
+
     /**
      * create and return a list of all XWPFTableCell
      * who belongs to this row
      * @return a list of {@link XWPFTableCell} 
      */
     public List<XWPFTableCell> getTableCells(){
-    	if(tableCells == null){
-    		List<XWPFTableCell> cells = new ArrayList<XWPFTableCell>();
-    		for (CTTc tableCell : ctRow.getTcList()) {
-    			cells.add(new XWPFTableCell(tableCell, this, table.getBody()));
-    		}
-    		this.tableCells = cells;
-    	}
-    	return tableCells;
-    }
-
-	/**
-	 * returns the XWPFTableCell which belongs to the CTTC cell
-	 * if there is no XWPFTableCell which belongs to the parameter CTTc cell null will be returned
-	 */
-	public XWPFTableCell getTableCell(CTTc cell) {
-		for(int i=0; i<tableCells.size(); i++){
-			if (tableCells.get(i).getCTTc() == cell)
-				return tableCells.get(i); 
-		}
-		return null;
+	if(tableCells == null){
+	    List<XWPFTableCell> cells = new ArrayList<XWPFTableCell>();
+	    for (CTTc tableCell : ctRow.getTcList()) {
+		cells.add(new XWPFTableCell(tableCell, this, table.getBody()));
+	    }
+	    this.tableCells = cells;
 	}
+	return tableCells;
+    }
 
-	/**
-	 * This attribute controls whether to allow table rows to split across pages.
-	 * The logic for this attribute is a little unusual: a true value means
-	 * DON'T allow rows to split, false means allow rows to split.
-	 * @param split - if true, don't allow rows to be split. If false, allow
-	 *        rows to be split.
-	 */
-	public void setCantSplitRow(boolean split) {
-		CTTrPr trpr = getTrPr();
-		CTOnOff onoff = trpr.addNewCantSplit();
-		onoff.setVal(split ? STOnOff.ON : STOnOff.OFF);
+    /**
+     * returns the XWPFTableCell which belongs to the CTTC cell
+     * if there is no XWPFTableCell which belongs to the parameter CTTc cell null will be returned
+     */
+    public XWPFTableCell getTableCell(CTTc cell) {
+	for(int i=0; i<tableCells.size(); i++){
+	    if (tableCells.get(i).getCTTc() == cell)
+		return tableCells.get(i); 
 	}
+	return null;
+    }
 
-	/**
-	 * Return true if the "can't split row" value is true. The logic for this
-	 * attribute is a little unusual: a TRUE value means DON'T allow rows to
-	 * split, FALSE means allow rows to split.
-	 * @return true if rows can't be split, false otherwise.
-	 */
-	public boolean isCantSplitRow() {
-		boolean isCant = false;
-		CTTrPr trpr = getTrPr();
-		if (trpr.sizeOfCantSplitArray() > 0) {
-			CTOnOff onoff = trpr.getCantSplitList().get(0);
-			isCant = onoff.getVal().equals(STOnOff.ON);
-		}
-		return isCant;
-	}
+    /**
+     * This attribute controls whether to allow table rows to split across pages.
+     * The logic for this attribute is a little unusual: a true value means
+     * DON'T allow rows to split, false means allow rows to split.
+     * @param split - if true, don't allow rows to be split. If false, allow
+     *        rows to be split.
+     */
+    public void setCantSplitRow(boolean split) {
+	CTTrPr trpr = getTrPr();
+	CTOnOff onoff = trpr.addNewCantSplit();
+	onoff.setVal(split ? STOnOff.ON : STOnOff.OFF);
+    }
 
-	/**
-	 * This attribute controls whether to repeat a table's header row at the top
-	 * of a table split across pages.
-	 * @param repeat - if TRUE, repeat header row at the top of each page of table;
-	 *                 if FALSE, don't repeat header row.
-	 */
-	public void setRepeatHeader(boolean repeat) {
-		CTTrPr trpr = getTrPr();
-		CTOnOff onoff = trpr.addNewTblHeader();
-		onoff.setVal(repeat ? STOnOff.ON : STOnOff.OFF);
+    /**
+     * Return true if the "can't split row" value is true. The logic for this
+     * attribute is a little unusual: a TRUE value means DON'T allow rows to
+     * split, FALSE means allow rows to split.
+     * @return true if rows can't be split, false otherwise.
+     */
+    public boolean isCantSplitRow() {
+	boolean isCant = false;
+	CTTrPr trpr = getTrPr();
+	if (trpr.sizeOfCantSplitArray() > 0) {
+	    CTOnOff onoff = trpr.getCantSplitList().get(0);
+	    isCant = onoff.getVal().equals(STOnOff.ON);
 	}
+	return isCant;
+    }
 
-	/**
-	 * Return true if a table's header row should be repeated at the top of a
-	 * table split across pages.
-	 * @return true if table's header row should be repeated at the top of each
-	 *         page of table, false otherwise.
-	 */
-	public boolean isRepeatHeader() {
-		boolean repeat = false;
-		CTTrPr trpr = getTrPr();
-		if (trpr.sizeOfTblHeaderArray() > 0) {
-			CTOnOff rpt = trpr.getTblHeaderList().get(0);
-			repeat = rpt.getVal().equals(STOnOff.ON);
-		}
-		return repeat;
-	}
+    /**
+     * This attribute controls whether to repeat a table's header row at the top
+     * of a table split across pages.
+     * @param repeat - if TRUE, repeat header row at the top of each page of table;
+     *                 if FALSE, don't repeat header row.
+     */
+    public void setRepeatHeader(boolean repeat) {
+	CTTrPr trpr = getTrPr();
+	CTOnOff onoff = trpr.addNewTblHeader();
+	onoff.setVal(repeat ? STOnOff.ON : STOnOff.OFF);
+    }
 
-}// end class
+    /**
+     * Return true if a table's header row should be repeated at the top of a
+     * table split across pages.
+     * @return true if table's header row should be repeated at the top of each
+     *         page of table, false otherwise.
+     */
+    public boolean isRepeatHeader() {
+	boolean repeat = false;
+	CTTrPr trpr = getTrPr();
+	if (trpr.sizeOfTblHeaderArray() > 0) {
+	    CTOnOff rpt = trpr.getTblHeaderList().get(0);
+	    repeat = rpt.getVal().equals(STOnOff.ON);
+	}
+	return repeat;
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org