<?php /** * TTableRow and TTableCellCollection class file * * @author Qiang Xue <qiang.xue@gmail.com> * @link http://www.pradosoft.com/ * @copyright Copyright © 2005 PradoSoft * @license http://www.pradosoft.com/license/ * @version $Revision: $ $Date: $ * @package System.Web.UI.WebControls */ /** * Includes TTableCell class */ Prado::using('System.Web.UI.WebControls.TTableCell'); /** * TTableRow class. * * TTableRow displays a table row. The table cells in the row can be accessed * via {@link getCells Cells}. The horizontal and vertical alignments of the row * are specified via {@link setHorizontalAlign HorizontalAlign} and * {@link setVerticalAlign VerticalAlign} properties, respectively. * * @author Qiang Xue <qiang.xue@gmail.com> * @version $Revision: $ $Date: $ * @package System.Web.UI.WebControls * @since 3.0 */ class TTableRow extends TWebControl { /** * @return string tag name for the table */ protected function getTagName() { return 'tr'; } /** * Adds object parsed from template to the control. * This method adds only {@link TTableCell} objects into the {@link getCells Cells} collection. * All other objects are ignored. * @param mixed object parsed from template */ public function addParsedObject($object) { if($object instanceof TTableCell) $this->getCells()->add($object); } /** * Creates a style object for the control. * This method creates a {@link TTableItemStyle} to be used by the table row. * @return TStyle control style to be used */ protected function createStyle() { return new TTableItemStyle; } /** * Creates a control collection object that is to be used to hold child controls * @return TTableCellCollection control collection * @see getControls */ protected function createControlCollection() { return new TTableCellCollection($this); } /** * @return TTableCellCollection list of {@link TTableCell} controls */ public function getCells() { return $this->getControls(); } /** * @return string the horizontal alignment of the contents within the table item, defaults to 'NotSet'. */ public function getHorizontalAlign() { if($this->getHasStyle()) return $this->getStyle()->getHorizontalAlign(); else return 'NotSet'; } /** * Sets the horizontal alignment of the contents within the table item. * Valid values include 'NotSet', 'Justify', 'Left', 'Right', 'Center' * @param string the horizontal alignment */ public function setHorizontalAlign($value) { $this->getStyle()->setHorizontalAlign($value); } /** * @return string the vertical alignment of the contents within the table item, defaults to 'NotSet'. */ public function getVerticalAlign() { if($this->getHasStyle()) return $this->getStyle()->getVerticalAlign(); else return 'NotSet'; } /** * Sets the vertical alignment of the contents within the table item. * Valid values include 'NotSet','Top','Bottom','Middle' * @param string the horizontal alignment */ public function setVerticalAlign($value) { $this->getStyle()->setVerticalAlign($value); } /** * @return string location of a row in a table. Defaults to 'Body'. */ public function getTableSection() { return $this->getViewState('TableSection','Body'); } /** * @param string location of a row in a table. Valid values include 'Header', 'Footer' and 'Body'. */ public function setTableSection($value) { $value=TPropertyValue::ensureEnum($value,'Header','Body','Footer'); $this->setViewState('TableSection',$value,'Body'); } /** * Renders body contents of the table row * @param THtmlWriter writer for the rendering purpose */ public function renderContents($writer) { if($this->getHasControls()) { $writer->writeLine(); foreach($this->getControls() as $cell) { $cell->renderControl($writer); $writer->writeLine(); } } } } /** * TTableCellCollection class. * * TTableCellCollection is used to maintain a list of cells belong to a table row. * * @author Qiang Xue <qiang.xue@gmail.com> * @version $Revision: $ $Date: $ * @package System.Web.UI.WebControls * @since 3.0 */ class TTableCellCollection extends TControlCollection { /** * Inserts an item at the specified position. * This overrides the parent implementation by performing additional * operations for each newly added table cell. * @param integer the speicified position. * @param mixed new item * @throws TInvalidDataTypeException if the item to be inserted is not a TTableCell object. */ public function insertAt($index,$item) { if($item instanceof TTableCell) parent::insertAt($index,$item); else throw new TInvalidDataTypeException('tablecellcollection_tablecell_required'); } } ?>