/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 2008 jOpenDocument, by ILM Informatique. All rights reserved.
*
* The contents of this file are subject to the terms of the GNU
* General Public License Version 3 only ("GPL").
* You may not use this file except in compliance with the License.
* You can obtain a copy of the License at http://www.gnu.org/licenses/gpl-3.0.html
* See the License for the specific language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each file.
*
*/
package org.jopendocument.model.table;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Vector;
/**
*
*/
public class TableTableRow {
static int count = 0;
ArrayList<TableTableCell> allCells;
Vector<TableTableCell> cells = new Vector<>();
int id = 0;
protected int tableNumberRowsRepeated = 1;
public TableTableRow() {
this.id = count;
count++;
}
public void addCell(final TableTableCell c) {
this.cells.add(c);
}
/**
* Compute AllCell except the last one
*/
void computeAllCells() {
this.allCells = new ArrayList<>();
for (int index = 0; index < this.cells.size(); index++) {
final TableTableCell c = this.cells.get(index);
// for (TableTableCell c : cells) {
//final int colPosition = this.allCells.size();
int repeated = c.getTableNumberColumnsRepeated();
// la derniere colonne n'est repétée que dans la limite de la zone d'impression
// sinon, on s'en coltine des milliers
if (index == this.cells.size() - 1) {
//repeated = this.getTable().getPrintStopCol() - this.allCells.size() + 1;
// Patch JOSM open data : do not care about last cell
repeated = 0;
}
for (int i = 0; i < repeated; i++) {
// Patch JOSM open data : do not care about column
//final TableTableColumn col = this.table.getColumnAtPosition(colPosition + i);
final TableTableCell cc = c.cloneCell();
//cc.setRowAndColumn(this, col);
this.allCells.add(cc);
}
}
// }}
// System.err.println("Computed:" + allCells.size() + " :" + allCells);
}
public Collection<TableTableCell> getAllCells() {
if (this.allCells == null) {
this.computeAllCells();
}
return this.allCells;
}
/**
* Gets the value of the tableNumberRowsRepeated property.
*
* @return possible object is {@link String }
*
*/
public int getTableNumberRowsRepeated() {
return this.tableNumberRowsRepeated;
}
// public List<TableTableCell> getCells() {
// return cells;
// }
public String getText() {
String t = "";
for (int index = 0; index < this.cells.size(); index++) {
final TableTableCell c = this.cells.get(index);
t += c.getTextP();
}
return t;
}
/**
* Sets the value of the tableNumberRowsRepeated property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableNumberRowsRepeated(final String value) {
if (value != null) {
this.tableNumberRowsRepeated = Integer.valueOf(value).intValue();
}
}
@Override
public String toString() {
return "TableRow" + this.id;
}
}