store references to all rows in the layout grid

Signed-off-by: Florian Thienel <florian@thienel.org>
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/TableLayoutGrid.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/TableLayoutGrid.java
index d55a863..f075bb0 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/TableLayoutGrid.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/TableLayoutGrid.java
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.vex.core.internal.boxes;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 
 import org.eclipse.vex.core.internal.core.Graphics;
@@ -19,16 +20,16 @@
  */
 public class TableLayoutGrid {
 
-	private final TableLayoutGrid parentGrid;
 	private final TableColumnDefinitions columnDefinitions;
 
+	private final ArrayList<TableRow> rows = new ArrayList<TableRow>();
 	private final HashMap<GridPosition, TableCell> grid = new HashMap<GridPosition, TableCell>();
+
 	private int currentRow = 0;
 	private int nextColumn = 1;
 	private int maxColumn = 0;
 
 	public static void setupLayoutGrid(final Graphics graphics, final IStructuralBox parent, final TableLayoutGrid layoutGrid) {
-		// TODO merge with TableColumnLayout
 		parent.accept(new DepthFirstBoxTraversal<Object>() {
 			@Override
 			public Object visit(final Table box) {
@@ -107,7 +108,6 @@
 	}
 
 	public TableLayoutGrid(final TableLayoutGrid parentGrid) {
-		this.parentGrid = parentGrid;
 		final TableColumnDefinitions parentColumnDefinitions = parentGrid == null ? null : parentGrid.columnDefinitions;
 		columnDefinitions = new TableColumnDefinitions(parentColumnDefinitions);
 	}
@@ -121,7 +121,8 @@
 	}
 
 	private int addNextRow(final TableRow row) {
-		currentRow += 1;
+		rows.add(row);
+		currentRow = rows.size();
 		row.setRowIndex(currentRow);
 		nextColumn = 1;
 		return currentRow;
@@ -171,6 +172,10 @@
 		return grid.containsKey(position);
 	}
 
+	public TableRow getRow(final int index) {
+		return rows.get(index - 1);
+	}
+
 	public TableCell getCell(final GridPosition position) {
 		return grid.get(position);
 	}