All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.odftoolkit.odfdom.dom.element.table.TableTableRowElement Maven / Gradle / Ivy

Go to download

ODFDOM is an OpenDocument Format (ODF) framework. Its purpose is to provide an easy common way to create, access and manipulate ODF files, without requiring detailed knowledge of the ODF specification. It is designed to provide the ODF developer community with an easy lightwork programming API portable to any object-oriented language. The current reference implementation is written in Java.

The newest version!
/**
 * **********************************************************************
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
 *
 * Copyright 2008, 2010 Oracle and/or its affiliates. All rights reserved.
 *
 * Use is subject to license terms.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at http://www.apache.org/licenses/LICENSE-2.0. You can also
 * obtain a copy of the License at http://odftoolkit.org/docs/license.txt
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 ***********************************************************************
 */

/*
 * This file is automatically generated.
 * Don't edit manually.
 */
package org.odftoolkit.odfdom.dom.element.table;

import org.odftoolkit.odfdom.dom.element.OdfStylableElement;
import org.odftoolkit.odfdom.dom.style.OdfStyleFamily;
import org.odftoolkit.odfdom.pkg.ElementVisitor;
import org.odftoolkit.odfdom.pkg.OdfFileDom;
import org.odftoolkit.odfdom.pkg.OdfName;
import org.odftoolkit.odfdom.dom.OdfDocumentNamespace;
import org.odftoolkit.odfdom.dom.DefaultElementVisitor;
import org.odftoolkit.odfdom.dom.attribute.table.TableDefaultCellStyleNameAttribute;
import org.odftoolkit.odfdom.dom.attribute.table.TableNumberRowsRepeatedAttribute;
import org.odftoolkit.odfdom.dom.attribute.table.TableStyleNameAttribute;
import org.odftoolkit.odfdom.dom.attribute.table.TableVisibilityAttribute;
import org.odftoolkit.odfdom.dom.attribute.xml.XmlIdAttribute;
import org.odftoolkit.odfdom.pkg.OdfElement;

/**
 * DOM implementation of OpenDocument element {
 *
 * @odf.element table:table-row}.
 *
 */
public class TableTableRowElement extends OdfStylableElement {

	public static final OdfName ELEMENT_NAME = OdfName.newName(OdfDocumentNamespace.TABLE, "table-row");
	private static final String VISIBLE = "visible";
	private static final String COLLAPSE = "collapse";

	/**
	 * Create the instance of
	 * TableTableRowElement
	 *
	 * @param ownerDoc The type is OdfFileDom
	 */
	public TableTableRowElement(OdfFileDom ownerDoc) {
		super(ownerDoc, ELEMENT_NAME, OdfStyleFamily.TableRow, OdfName.newName(OdfDocumentNamespace.TABLE, "style-name"));
	}

	/**
	 * Get the element name
	 *
	 * @return return   OdfName the name of element {
	 * @odf.element table:table-row}.
	 */
	public OdfName getOdfName() {
		return ELEMENT_NAME;
	}

	/**
	 * Receives the value of the ODFDOM attribute representation
	 * TableDefaultCellStyleNameAttribute , See {
	 *
	 * @odf.attribute table:default-cell-style-name}
	 *
	 * @return - the String , the value or null, if
	 * the attribute is not set and no default value defined.
	 */
	public String getTableDefaultCellStyleNameAttribute() {
		TableDefaultCellStyleNameAttribute attr = (TableDefaultCellStyleNameAttribute) getOdfAttribute(OdfDocumentNamespace.TABLE, "default-cell-style-name");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return null;
	}

	/**
	 * Sets the value of ODFDOM attribute representation
	 * TableDefaultCellStyleNameAttribute , See {
	 *
	 * @odf.attribute table:default-cell-style-name}
	 *
	 * @param tableDefaultCellStyleNameValue The type is String
	 */
	public void setTableDefaultCellStyleNameAttribute(String tableDefaultCellStyleNameValue) {
		TableDefaultCellStyleNameAttribute attr = new TableDefaultCellStyleNameAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(tableDefaultCellStyleNameValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation
	 * TableNumberRowsRepeatedAttribute , See {
	 *
	 * @odf.attribute table:number-rows-repeated}
	 *
	 * @return - the Integer , the value or null, if
	 * the attribute is not set and no default value defined.
	 */
	public Integer getTableNumberRowsRepeatedAttribute() {
		TableNumberRowsRepeatedAttribute attr = (TableNumberRowsRepeatedAttribute) getOdfAttribute(OdfDocumentNamespace.TABLE, "number-rows-repeated");
		if (attr != null) {
			return Integer.valueOf(attr.intValue());
		}
		return Integer.valueOf(TableNumberRowsRepeatedAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation
	 * TableNumberRowsRepeatedAttribute , See {
	 *
	 * @odf.attribute table:number-rows-repeated}
	 *
	 * @param tableNumberRowsRepeatedValue The type is Integer
	 */
	public void setTableNumberRowsRepeatedAttribute(Integer tableNumberRowsRepeatedValue) {
		TableNumberRowsRepeatedAttribute attr = new TableNumberRowsRepeatedAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setIntValue(tableNumberRowsRepeatedValue.intValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation
	 * TableStyleNameAttribute , See {
	 *
	 * @odf.attribute table:style-name}
	 *
	 * @return - the String , the value or null, if
	 * the attribute is not set and no default value defined.
	 */
	public String getTableStyleNameAttribute() {
		TableStyleNameAttribute attr = (TableStyleNameAttribute) getOdfAttribute(OdfDocumentNamespace.TABLE, "style-name");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return null;
	}

	/**
	 * Sets the value of ODFDOM attribute representation
	 * TableStyleNameAttribute , See {
	 *
	 * @odf.attribute table:style-name}
	 *
	 * @param tableStyleNameValue The type is String
	 */
	public void setTableStyleNameAttribute(String tableStyleNameValue) {
		TableStyleNameAttribute attr = new TableStyleNameAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(tableStyleNameValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation
	 * TableVisibilityAttribute , See {
	 *
	 * @odf.attribute table:visibility}
	 *
	 * @return - the String , the value or null, if
	 * the attribute is not set and no default value defined.
	 */
	public String getTableVisibilityAttribute() {
		TableVisibilityAttribute attr = (TableVisibilityAttribute) getOdfAttribute(OdfDocumentNamespace.TABLE, "visibility");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return TableVisibilityAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation
	 * TableVisibilityAttribute , See {
	 *
	 * @odf.attribute table:visibility}
	 *
	 * @param tableVisibilityValue The type is String
	 */
	public void setTableVisibilityAttribute(String tableVisibilityValue) {
		TableVisibilityAttribute attr = new TableVisibilityAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(tableVisibilityValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation
	 * XmlIdAttribute , See {
	 *
	 * @odf.attribute xml:id}
	 *
	 * @return - the String , the value or null, if
	 * the attribute is not set and no default value defined.
	 */
	public String getXmlIdAttribute() {
		XmlIdAttribute attr = (XmlIdAttribute) getOdfAttribute(OdfDocumentNamespace.XML, "id");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return null;
	}

	/**
	 * Sets the value of ODFDOM attribute representation
	 * XmlIdAttribute , See {
	 *
	 * @odf.attribute xml:id}
	 *
	 * @param xmlIdValue The type is String
	 */
	public void setXmlIdAttribute(String xmlIdValue) {
		XmlIdAttribute attr = new XmlIdAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(xmlIdValue);
	}

	/**
	 * Create child element {
	 *
	 * @odf.element table:covered-table-cell}.
	 *
	 * @param officeValueValue the Double value *
	 * of OfficeValueAttribute, see {
	 * @odf.attribute office:value} at specification
	 * @param officeValueTypeValue the String value *
	 * of OfficeValueTypeAttribute, see {
	 * @odf.attribute office:value-type} at specification
	 * @return the element {
	 * @odf.element table:covered-table-cell}
	 */
	public TableCoveredTableCellElement newTableCoveredTableCellElement(double officeValueValue, String officeValueTypeValue) {
		TableCoveredTableCellElement tableCoveredTableCell = ((OdfFileDom) this.ownerDocument).newOdfElement(TableCoveredTableCellElement.class);
		tableCoveredTableCell.setOfficeValueAttribute(officeValueValue);
		tableCoveredTableCell.setOfficeValueTypeAttribute(officeValueTypeValue);
		this.appendChild(tableCoveredTableCell);
		return tableCoveredTableCell;
	}

	/**
	 * Create child element {
	 *
	 * @odf.element table:table-cell}.
	 *
	 * @param officeValueValue the Double value *
	 * of OfficeValueAttribute, see {
	 * @odf.attribute office:value} at specification
	 * @param officeValueTypeValue the String value *
	 * of OfficeValueTypeAttribute, see {
	 * @odf.attribute office:value-type} at specification
	 * @return the element {
	 * @odf.element table:table-cell}
	 */
	public TableTableCellElement newTableTableCellElement(double officeValueValue, String officeValueTypeValue) {
		TableTableCellElement tableTableCell = ((OdfFileDom) this.ownerDocument).newOdfElement(TableTableCellElement.class);
		tableTableCell.setOfficeValueAttribute(officeValueValue);
		tableTableCell.setOfficeValueTypeAttribute(officeValueTypeValue);
		this.appendChild(tableTableCell);
		return tableTableCell;
	}

	@Override
	public void accept(ElementVisitor visitor) {
		if (visitor instanceof DefaultElementVisitor) {
			DefaultElementVisitor defaultVisitor = (DefaultElementVisitor) visitor;
			defaultVisitor.visit(this);
		} else {
			visitor.visit(this);
		}
	}

	@Override
	/**
	 * If this element is the first - perhaps only - element of a logical group
	 * of XML elements. For instance: table, paragraph
	 */
	public boolean isComponentRoot() {
		return true;
	}


	/** Changes the visibility of the @table:visibility attributes */
	public void setVisiblity(Boolean show) {
		// the default is visible ("true")
		boolean isVisible = Boolean.TRUE;
		if (hasAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "visibility")) {
			isVisible = VISIBLE.equals(getAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "visibility"));
		}
		if (show && !isVisible || !show && isVisible) {
			if (show) {
				removeAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "visible");
			} else {
				setAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "table:visibility", COLLAPSE);
			}
		}
	}

	@Override
	// ToDo: Move this to a intermediate class, e.g. ComponentRootElement
	/**
	 * @return the component size of a heading, which is always 1
	 */
	public boolean isRepeatable() {
		return true;
	}

	@Override
	// ToDo: Move this to a intermediate class, e.g. ComponentRootElement
	/**
	 * @return the component size of a heading, which is always 1
	 */
	public void setRepetition(int repetition) {
		if (repetition >= 0) {
			setTableNumberRowsRepeatedAttribute(repetition);
		}
	}

	@Override
	// ToDo: Move this to a intermediate class, e.g. ComponentRootElement
	/**
	 * @return the component size of a heading, which is always 1
	 */
	public int getRepetition() {
		Integer repeated = getTableNumberRowsRepeatedAttribute();
		if (repeated == null) {
			repeated = 1;
		}
		return repeated;
	}

	/**
	 * Splitting the element at the given position into two halves
	 *
	 * @param posStart The split position. The start of the second half.
	 * @return the new created second element (or if posStart was less than 1 the original element)
	 *
	 */
	@Override
	public OdfElement split(int posStart) {
		TableTableRowElement newElement = this;
		if (posStart > 0) {
			newElement = (TableTableRowElement) this.cloneNode(true);
			int repeated = getTableNumberRowsRepeatedAttribute();
			if (repeated > 1) {
				if (posStart > 1) {
					this.setTableNumberRowsRepeatedAttribute(posStart);
				} else {
					this.removeAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "number-rows-repeated");
				}
				if (repeated - posStart > 1) {
					newElement.setTableNumberRowsRepeatedAttribute(repeated - posStart);
				} else {
					newElement.removeAttributeNS(OdfDocumentNamespace.TABLE.getUri(), "number-rows-repeated");
				}
			}
			OdfElement nextElementSibling = OdfElement.getNextSiblingElement(this);
			OdfElement parent = (OdfElement) this.getParentNode();
			if (nextElementSibling == null) {
				parent.appendChild(newElement);
			} else {
				parent.insertBefore(newElement, nextElementSibling);
			}
		}
		return newElement;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy