if (rowController == null)
{
LOGGER.warn("Table-Cell has no parent. Unable to calculate the image-size.");
return null;
}
final Section tableRow = (Section) rowController.getNode();
// we are now making the assumption, that the row is a section, that contains the table-cell.
// This breaks the ability to return nodes or to construct reports on the fly, but the OO-report format
// is weird anyway and wont support such advanced techniques for the next few centuries ..
final int columnPos = findNodeInSection(tableRow, tableCell, OfficeToken.COVERED_TABLE_CELL);
if (columnPos == -1)
{
LOGGER.warn("Table-Cell is not a direct child of the table-row. Unable to calculate the image-size.");
return null;
}
final LayoutController tableController = rowController.getParent();
if (tableController == null)
{
LOGGER.warn("Table-Row has no Table. Unable to calculate the image-size.");
return null;
}
final Section table = (Section) tableController.getNode();
// ok, we got a table, so as next we have to search for the columns now.
final Section columns = (Section) table.findFirstChild(OfficeNamespaces.TABLE_NS, OfficeToken.TABLE_COLUMNS);
if (columns.getNodeCount() <= columnPos + colSpan)
{
// the colspan is to large. The table definition is therefore invalid. We do not try to fix this.
LOGGER.warn(
"The Table's defined columns do not match the col-span or col-position. Unable to calculate the image-size.");
return null;