cell = (SimpleCell)i.next();
columns += cell.getColspan();
}
float[] widths = new float[columns];
float[] widthpercentages = new float[columns];
LwgPdfPTable table = new LwgPdfPTable(columns);
table.setTableEvent(this);
table.setHorizontalAlignment(alignment);
int pos;
for (Iterator rows = content.iterator(); rows.hasNext(); ) {
row = (SimpleCell)rows.next();
pos = 0;
for (Iterator cells = row.getContent().iterator(); cells.hasNext(); ) {
cell = (SimpleCell)cells.next();
if (Float.isNaN(cell.getSpacing_left())) {
cell.setSpacing_left(cellspacing / 2f);
}
if (Float.isNaN(cell.getSpacing_right())) {
cell.setSpacing_right(cellspacing / 2f);
}
if (Float.isNaN(cell.getSpacing_top())) {
cell.setSpacing_top(cellspacing / 2f);
}
if (Float.isNaN(cell.getSpacing_bottom())) {
cell.setSpacing_bottom(cellspacing / 2f);
}
cell.setPadding(cellpadding);
table.add(cell.createPdfPCell(row));
if (cell.getColspan() == 1) {
if (cell.getWidth() > 0) widths[pos] = cell.getWidth();
if (cell.getWidthpercentage() > 0) widthpercentages[pos] = cell.getWidthpercentage();
}
pos += cell.getColspan();
}
}
float sumWidths = 0f;
for(int i = 0; i < columns; i++) {
if (widths[i] == 0) {
sumWidths = 0;
break;
}
sumWidths += widths[i];
}
if (sumWidths > 0) {
table.setTotalWidth(sumWidths);
table.setWidths(widths);
}
else {
for(int i = 0; i < columns; i++) {
if (widthpercentages[i] == 0) {
sumWidths = 0;
break;
}
sumWidths += widthpercentages[i];
}
if (sumWidths > 0) {
table.setWidths(widthpercentages);
}
}
if (width > 0) {
table.setTotalWidth(width);
}
if (widthpercentage > 0) {
table.setWidthPercentage(widthpercentage);
}
return table;
}