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);
}