/*
* 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.List;
import java.util.Vector;
import org.jopendocument.model.draw.DrawFrame;
import org.jopendocument.model.draw.DrawImage;
import org.jopendocument.model.office.OfficeAnnotation;
import org.jopendocument.model.style.StyleStyle;
import org.jopendocument.model.text.TextP;
public class TableTableCell {
private StyleStyle cellStyle;
private TableTableColumn column;
private boolean covered;
private List<DrawFrame> drawFrames;
private DrawImage drawImage;
protected OfficeAnnotation officeAnnotation;
protected TableTableRow row;
protected String tableBooleanValue;
protected TableCellRangeSource tableCellRangeSource;
protected String tableCurrency;
protected String tableDateValue;
protected TableDetective tableDetective;
protected String tableFormula;
protected int tableNumberColumnsRepeated = 1;
protected int tableNumberColumnsSpanned = 1;
protected String tableNumberMatrixColumnsSpanned;
protected String tableNumberMatrixRowsSpanned;
protected int tableNumberRowsSpanned = 1;
protected String tableProtected;
protected String tableStringValue;
protected String tableStyleName;
protected String tableTimeValue;
protected String tableValidationName;
protected String tableValue;
protected String tableValueType;
private TextP textP;
public void addDrawFrame(final DrawFrame p) {
if (this.drawFrames == null) {
this.drawFrames = new Vector<DrawFrame>();
}
this.drawFrames.add(p);
}
protected TableTableCell cloneCell() {
final TableTableCell c = new TableTableCell();
c.tableNumberColumnsRepeated = this.tableNumberColumnsRepeated;
c.tableNumberRowsSpanned = this.tableNumberRowsSpanned;
c.tableNumberColumnsSpanned = this.tableNumberColumnsSpanned;
c.tableStyleName = this.tableStyleName;
c.tableValidationName = this.tableValidationName;
c.tableFormula = this.tableFormula;
c.tableNumberMatrixRowsSpanned = this.tableNumberMatrixRowsSpanned;
c.tableNumberMatrixColumnsSpanned = this.tableNumberMatrixColumnsSpanned;
c.tableValueType = this.tableValueType;
c.tableValue = this.tableValue;
c.tableDateValue = this.tableDateValue;
c.tableTimeValue = this.tableTimeValue;
c.tableBooleanValue = this.tableBooleanValue;
c.tableStringValue = this.tableStringValue;
c.tableCurrency = this.tableCurrency;
c.tableProtected = this.tableProtected;
c.tableCellRangeSource = this.tableCellRangeSource;
c.tableDetective = this.tableDetective;
c.officeAnnotation = this.officeAnnotation;
c.textP = this.textP;
c.covered = this.covered;
c.drawImage = this.drawImage;
c.drawFrames = this.drawFrames;
return c;
}
private void computeStyle() {
if (this.column == null) {
return;
}
String styleName = this.getStyleName();
if (styleName == null) {
styleName = this.column.getTableDefaultCellStyleName();
}
this.cellStyle = this.row.getTable().getCellStyle(styleName);
if (this.cellStyle == null /* && styleName != null */) {
System.err.println(styleName + " not found");
Thread.dumpStack();
}
}
public List<DrawFrame> getDrawFrames() {
return this.drawFrames;
}
/**
* Gets the value of the officeAnnotation property.
*
* @return possible object is {@link OfficeAnnotation }
*
*/
public OfficeAnnotation getOfficeAnnotation() {
return this.officeAnnotation;
}
public TableTableRow getRow() {
return this.row;
}
public StyleStyle getStyle() {
return this.cellStyle;
}
/**
* Gets the value of the tableStyleName property.
*
* @return possible object is {@link String }
*
*/
public String getStyleName() {
return this.tableStyleName;
}
/**
* Gets the value of the tableBooleanValue property.
*
* @return possible object is {@link String }
*
*/
public String getTableBooleanValue() {
return this.tableBooleanValue;
}
/**
* Gets the value of the tableCellRangeSource property.
*
* @return possible object is {@link TableCellRangeSource }
*
*/
public TableCellRangeSource getTableCellRangeSource() {
return this.tableCellRangeSource;
}
/**
* Gets the value of the tableCurrency property.
*
* @return possible object is {@link String }
*
*/
public String getTableCurrency() {
return this.tableCurrency;
}
/**
* Gets the value of the tableDateValue property.
*
* @return possible object is {@link String }
*
*/
public String getTableDateValue() {
return this.tableDateValue;
}
/**
* Gets the value of the tableDetective property.
*
* @return possible object is {@link TableDetective }
*
*/
public TableDetective getTableDetective() {
return this.tableDetective;
}
/**
* Gets the value of the tableFormula property.
*
* @return possible object is {@link String }
*
*/
public String getTableFormula() {
return this.tableFormula;
}
/**
* Gets the value of the tableNumberColumnsRepeated property.
*
*/
public int getTableNumberColumnsRepeated() {
return this.tableNumberColumnsRepeated;
}
/**
* Gets the value of the tableNumberColumnsSpanned property.
*
* @return possible object is {@link String }
*
*/
public int getTableNumberColumnsSpanned() {
return this.tableNumberColumnsSpanned;
}
/**
* Gets the value of the tableNumberMatrixColumnsSpanned property.
*
* @return possible object is {@link String }
*
*/
public String getTableNumberMatrixColumnsSpanned() {
return this.tableNumberMatrixColumnsSpanned;
}
/**
* Gets the value of the tableNumberMatrixRowsSpanned property.
*
* @return possible object is {@link String }
*
*/
public String getTableNumberMatrixRowsSpanned() {
return this.tableNumberMatrixRowsSpanned;
}
/**
* Gets the value of the tableNumberRowsSpanned property.
*
* @return possible object is {@link String }
*
*/
public int getTableNumberRowsSpanned() {
return this.tableNumberRowsSpanned;
}
/**
* Gets the value of the tableProtected property.
*
* @return possible object is {@link String }
*
*/
public String getTableProtected() {
if (this.tableProtected == null) {
return "false";
} else {
return this.tableProtected;
}
}
/**
* Gets the value of the tableStringValue property.
*
* @return possible object is {@link String }
*
*/
public String getTableStringValue() {
return this.tableStringValue;
}
/**
* Gets the value of the tableTimeValue property.
*
* @return possible object is {@link String }
*
*/
public String getTableTimeValue() {
return this.tableTimeValue;
}
/**
* Gets the value of the tableValidationName property.
*
* @return possible object is {@link String }
*
*/
public String getTableValidationName() {
return this.tableValidationName;
}
/**
* Gets the value of the tableValue property.
*
* @return possible object is {@link String }
*
*/
public String getTableValue() {
return this.tableValue;
}
/**
* Gets the value of the tableValueType property.
*
* @return possible object is {@link String }
*
*/
public String getTableValueType() {
if (this.tableValueType == null) {
return "string";
} else {
return this.tableValueType;
}
}
public TextP getTextP() {
return this.textP;
}
public boolean isCovered() {
return this.covered;
}
public void setCovered(final boolean b) {
this.covered = b;
}
/**
* Sets the value of the officeAnnotation property.
*
* @param value allowed object is {@link OfficeAnnotation }
*
*/
public void setOfficeAnnotation(final OfficeAnnotation value) {
this.officeAnnotation = value;
}
public void setRowAndColumn(final TableTableRow r, final TableTableColumn c) {
this.row = r;
this.column = c;
this.computeStyle();
}
/**
* Sets the value of the tableBooleanValue property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableBooleanValue(final String value) {
this.tableBooleanValue = value;
}
/**
* Sets the value of the tableCellRangeSource property.
*
* @param value allowed object is {@link TableCellRangeSource }
*
*/
public void setTableCellRangeSource(final TableCellRangeSource value) {
this.tableCellRangeSource = value;
}
/**
* Sets the value of the tableCurrency property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableCurrency(final String value) {
this.tableCurrency = value;
}
/**
* Sets the value of the tableDateValue property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableDateValue(final String value) {
this.tableDateValue = value;
}
/**
* Sets the value of the tableDetective property.
*
* @param value allowed object is {@link TableDetective }
*
*/
public void setTableDetective(final TableDetective value) {
this.tableDetective = value;
}
/**
* Sets the value of the tableFormula property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableFormula(final String value) {
this.tableFormula = value;
}
/**
* Sets the value of the tableNumberColumnsRepeated property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableNumberColumnsRepeated(final String value) {
if (value != null) {
this.tableNumberColumnsRepeated = Integer.valueOf(value);
}
}
/**
* Sets the value of the tableNumberColumnsSpanned property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableNumberColumnsSpanned(final String value) {
if (value != null) {
this.tableNumberColumnsSpanned = Integer.valueOf(value);
}
}
/**
* Sets the value of the tableNumberMatrixColumnsSpanned property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableNumberMatrixColumnsSpanned(final String value) {
this.tableNumberMatrixColumnsSpanned = value;
}
/**
* Sets the value of the tableNumberMatrixRowsSpanned property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableNumberMatrixRowsSpanned(final String value) {
this.tableNumberMatrixRowsSpanned = value;
}
/**
* Sets the value of the tableNumberRowsSpanned property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableNumberRowsSpanned(final String value) {
if (value != null) {
this.tableNumberRowsSpanned = Integer.valueOf(value);
}
}
/**
* Sets the value of the tableProtected property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableProtected(final String value) {
this.tableProtected = value;
}
/**
* Sets the value of the tableStringValue property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableStringValue(final String value) {
this.tableStringValue = value;
}
/**
* Sets the value of the tableStyleName property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableStyleName(final String value) {
this.tableStyleName = value;
this.computeStyle();
}
/**
* Sets the value of the tableTimeValue property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableTimeValue(final String value) {
this.tableTimeValue = value;
}
/**
* Sets the value of the tableValidationName property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableValidationName(final String value) {
this.tableValidationName = value;
}
/**
* Sets the value of the tableValue property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableValue(final String value) {
this.tableValue = value;
}
/**
* Sets the value of the tableValueType property.
*
* @param value allowed object is {@link String }
*
*/
public void setTableValueType(final String value) {
this.tableValueType = value;
}
public void setTextP(final TextP p) {
if (this.textP != null) {
System.err.println("TableTableCell: Warning: no support for multiple TextP in a Cell");
} else {
this.textP = p;
}
}
@Override
public String toString() {
return "Cell: style:" + this.getStyleName() + " TestP:" + this.getTextP();
}
}