107 lines
1.9 KiB
PHP
107 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace Caxy\HtmlDiff\Table;
|
|
|
|
/**
|
|
* Class TableRow
|
|
* @package Caxy\HtmlDiff\Table
|
|
*/
|
|
class TableRow extends AbstractTableElement
|
|
{
|
|
/**
|
|
* @var Table
|
|
*/
|
|
protected $table;
|
|
|
|
/**
|
|
* @var TableCell[]
|
|
*/
|
|
protected $cells = array();
|
|
|
|
/**
|
|
* @return Table
|
|
*/
|
|
public function getTable()
|
|
{
|
|
return $this->table;
|
|
}
|
|
|
|
/**
|
|
* @param Table|null $table
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function setTable(Table $table = null)
|
|
{
|
|
$this->table = $table;
|
|
|
|
if ($table && !in_array($this, $table->getRows())) {
|
|
$table->addRow($this);
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return TableCell[]
|
|
*/
|
|
public function getCells()
|
|
{
|
|
return $this->cells;
|
|
}
|
|
|
|
/**
|
|
* @param TableCell $cell
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function addCell(TableCell $cell)
|
|
{
|
|
$this->cells[] = $cell;
|
|
|
|
if (!$cell->getRow()) {
|
|
$cell->setRow($this);
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @param TableCell $cell
|
|
*/
|
|
public function removeCell(TableCell $cell)
|
|
{
|
|
$key = array_search($cell, $this->cells, true);
|
|
|
|
if ($key !== false) {
|
|
unset($this->cells[$key]);
|
|
if ($cell->getRow()) {
|
|
$cell->setRow(null);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param int $index
|
|
*
|
|
* @return TableCell|null
|
|
*/
|
|
public function getCell($index)
|
|
{
|
|
return isset($this->cells[$index]) ? $this->cells[$index] : null;
|
|
}
|
|
|
|
/**
|
|
* @param TableCell[] $cells
|
|
* @param null|int $position
|
|
*/
|
|
public function insertCells($cells, $position = null)
|
|
{
|
|
if ($position === null) {
|
|
$this->cells = array_merge($this->cells, $cells);
|
|
} else {
|
|
array_splice($this->cells, $position, 0, $cells);
|
|
}
|
|
}
|
|
}
|