protected boolean startTableCellBox(final TableCellRenderBox box) { if (currentTable == null) { return false; } if (currentTable.getSectionRenderBox() == null) { return false; } final int rowSpan = box.getRowSpan(); final int colSpan = box.getColSpan(); final int startPos = currentTable.increaseCellPosition(colSpan, rowSpan); while (currentTable.columnModel.getColumnCount() <= startPos) { currentTable.columnModel.addAutoColumn(); } box.setColumnIndex(startPos); box.setBodySection(currentTable.isBodySection()); final BoxDefinition boxDefinition = box.getBoxDefinition(); final long preferredHeight = boxDefinition.getPreferredHeight().resolve(0); final long minHeight = boxDefinition.getMinimumHeight().resolve(0); final long maxHeight = boxDefinition.getMaximumHeight().resolve(0, MAX_AUTO); final long preferredSize = ProcessUtility.computeLength(minHeight, maxHeight, preferredHeight); currentTable.updateDefinedSize(rowSpan, preferredSize); return true; }
protected boolean startTableRowBox(final TableRowRenderBox box) { if (currentTable == null) { return false; } if (currentTable.getSectionRenderBox() == null) { return false; } currentTable.resetCellPosition(); box.setBodySection(currentTable.isBodySection()); // check if this is the first row ... if (currentTable.rowCount == -1) { if (box.getRowIndex() != -1) { currentTable.rowCount = box.getRowIndex(); return true; } } currentTable.rowCount += 1; box.setRowIndex(currentTable.rowCount); if (currentTable.rowCount <= currentTable.rowModel.getRowCount()) { currentTable.rowModel.addRow(); } return true; }
protected boolean startTableSectionBox(final TableSectionRenderBox box) { if (currentTable == null) { return false; } if (currentTable.getSectionRenderBox() != null) { return true; } currentTable.setSectionRenderBox(box); box.getRowModel().initialize(currentTable.getTable()); return true; }
protected void finishTableBox(final TableRenderBox table) { final long changeTracker = table.getChangeTracker(); final long age = table.getTableValidationAge(); if (changeTracker == age) { return; } // currentTable.columnModel.validateSizes(table); table.setTableValidationAge(age); table.setPredefinedColumnsValidated(true); currentTable = currentTable.pop(); }
protected void finishTableSectionBox(final TableSectionRenderBox box) { if (currentTable == null) { return; } if (currentTable.getSectionRenderBox() != box) { return; } final IntList rowSpans = currentTable.rowSpans; int missingRows = 0; for (int i = 0; i < rowSpans.size(); i++) { final int value = rowSpans.get(i); if (missingRows < value) { missingRows = value; } } for (int i = 0; i < missingRows; i += 1) { currentTable.rowModel.addRow(); } box.getRowModel().validateSizes(box); currentTable.setSectionRenderBox(null); }
protected void finishTableRowBox(final TableRowRenderBox box) { if (currentTable == null) { return; } if (currentTable.getSectionRenderBox() == null) { return; } final IntList rowSpans = currentTable.rowSpans; int maxRowSpan = 0; for (int i = 0; i < rowSpans.size(); i++) { final int value = rowSpans.get(i); maxRowSpan = Math.max(maxRowSpan, value); } for (int i = 0; i < rowSpans.size(); i++) { final int value = rowSpans.get(i); rowSpans.set(i, Math.max(0, value - 1)); } }