Files
dokuwiki-plugins/lib/plugins/odt/ODT/elements/ODTElementTableRow.php
Trevor Batley bce7dd054a add contents
2025-10-09 15:04:29 +11:00

111 lines
2.7 KiB
PHP

<?php
/**
* Handle ODT Table row elements.
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author LarsDW223
* @package ODT\Elements\ODTElementTableRow
*/
/** Include ODTStateElement */
require_once DOKU_PLUGIN.'odt/ODT/elements/ODTStateElement.php';
/**
* ODTElementTableRow:
* Class for handling the table row element.
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author LarsDW223
*/
class ODTElementTableRow extends ODTStateElement
{
/**
* Constructor.
*
* @param string $style_name Name of the style
*/
public function __construct($style_name=NULL) {
parent::__construct();
$this->setClass ('table-row');
if ($style_name != NULL) {
$this->setStyleName ($style_name);
}
}
/**
* Return the elements name.
*
* @return string The ODT XML element name.
*/
public function getElementName () {
return ('table:table-row');
}
/**
* Return string with encoded opening tag.
*
* @return string The ODT XML code to open this element.
*/
public function getOpeningTag () {
$style_name = $this->getStyleName();
if ($style_name != NULL) {
return '<table:table-row table:style-name="'.$style_name.'">';
}
return '<table:table-row>';
}
/**
* Return string with encoded closing tag.
*
* @return string The ODT XML code to close this element.
*/
public function getClosingTag () {
return '</table:table-row>';
}
/**
* Are we in a paragraph or not?
* As a table row we are not.
*
* @return boolean
*/
public function getInParagraph() {
return false;
}
/**
* Determine and set the parent for this element.
* As a table row our parent is the table element.
*
* @param ODTStateElement $previous
*/
public function determineParent(ODTStateElement $previous) {
$table = $previous;
while ($table != NULL) {
if ($table->getClass() == 'table') {
break;
}
$table = $table->getParent();
}
$this->setParent($table);
if ($table == NULL) {
// ??? Should not be...
return;
}
// A new row, we are back in the first column again.
$table->increaseRowCount();
$table->setTableCurrentColumn(0);
}
/**
* Return the table to which this column belongs.
*
* @return ODTStateElement
*/
public function getTable () {
return $this->getParent();
}
}