From bbb5ba2761529a2f477589623b2b76b10d6f8803 Mon Sep 17 00:00:00 2001 From: xue <> Date: Tue, 31 Jan 2006 21:27:51 +0000 Subject: Split TTable.php file into individual class files. Modified TRepeater demo 2. --- framework/Web/UI/WebControls/TTable.php | 480 ++------------------------------ 1 file changed, 16 insertions(+), 464 deletions(-) (limited to 'framework/Web/UI/WebControls/TTable.php') diff --git a/framework/Web/UI/WebControls/TTable.php b/framework/Web/UI/WebControls/TTable.php index fb70e66c..ae2a01b4 100644 --- a/framework/Web/UI/WebControls/TTable.php +++ b/framework/Web/UI/WebControls/TTable.php @@ -1,6 +1,6 @@ * @link http://www.pradosoft.com/ @@ -10,6 +10,11 @@ * @package System.Web.UI.WebControls */ +/** + * Includes TTableRow class + */ +Prado::using('System.Web.UI.WebControls.TTableRow'); + /** * TTable class * @@ -31,16 +36,16 @@ * or dynamically create {@link TTableRow} in code. * In template, do as follows to create the table rows and cells, * - * <com:TTable> - * <com:TTableRow> - * <com:TTableCell Text="content" /> - * <com:TTableCell Text="content" /> - * </com:TTableRow> - * <com:TTableRow> - * <com:TTableCell Text="content" /> - * <com:TTableCell Text="content" /> - * </com:TTableRow> - * <com:TTable> + * + * + * + * + * + * + * + * + * + * * * The above can also be accomplished in code as follows, * @@ -295,396 +300,6 @@ class TTable extends TWebControl } } - -/** - * 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 - * @version $Revision: $ $Date: $ - * @package System.Web.UI.WebControls - * @since 3.0 - */ -class TTableRow extends TWebControl -{ - /** - * @var TTableCellCollection cell collection - */ - private $_cells=null; - - /** - * @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; - } - - /** - * @return TTableCellCollection list of {@link TTableCell} controls - */ - public function getCells() - { - if(!$this->_cells) - $this->_cells=new TTableCellCollection($this); - return $this->_cells; - } - - /** - * @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','Middel' - * @param string the horizontal alignment - */ - public function setVerticalAlign($value) - { - $this->getStyle()->setVerticalAlign($value); - } - - /** - * Renders body contents of the table row - * @param THtmlWriter writer for the rendering purpose - */ - protected function renderContents($writer) - { - if($this->_cells) - { - $writer->writeLine(); - foreach($this->_cells as $cell) - { - $cell->renderControl($writer); - $writer->writeLine(); - } - } - } -} - - -/** - * TTableCell class. - * - * TTableCell displays a table cell on a Web page. Content of the table cell - * is specified by the {@link setText Text} property. If {@link setText Text} - * is empty, the body contents enclosed by the table cell component tag are rendered. - * Note, {@link setText Text} is not HTML-encoded when displayed. So make sure - * it does not contain dangerous characters. - * - * The horizontal and vertical alignments of the contents in the cell - * are specified via {@link setHorizontalAlign HorizontalAlign} and - * {@link setVerticalAlign VerticalAlign} properties, respectively. - * - * The colspan and rowspan of the cell are specified via {@link setColumnSpan ColumnSpan} - * and {@link setRowSpan RowSpan} properties. And the {@link setWrap Wrap} property - * indicates whether the contents in the cell should be wrapped. - * - * @author Qiang Xue - * @version $Revision: $ $Date: $ - * @package System.Web.UI.WebControls - * @since 3.0 - */ -class TTableCell extends TWebControl -{ - /** - * @return string tag name for the table cell - */ - protected function getTagName() - { - return 'td'; - } - - /** - * Creates a style object for the control. - * This method creates a {@link TTableItemStyle} to be used by the table cell. - * @return TStyle control style to be used - */ - protected function createStyle() - { - return new TTableItemStyle; - } - - /** - * @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','Middel' - * @param string the horizontal alignment - */ - public function setVerticalAlign($value) - { - $this->getStyle()->setVerticalAlign($value); - } - - /** - * @return integer the columnspan for the table cell, 0 if not set. - */ - public function getColumnSpan() - { - return $this->getViewState('ColumnSpan', 0); - } - - /** - * Sets the columnspan for the table cell. - * @param integer the columnspan for the table cell, 0 if not set. - */ - public function setColumnSpan($value) - { - $this->setViewState('ColumnSpan', TPropertyValue::ensureInteger($value), 0); - } - - /** - * @return integer the rowspan for the table cell, 0 if not set. - */ - public function getRowSpan() - { - return $this->getViewState('RowSpan', 0); - } - - /** - * Sets the rowspan for the table cell. - * @param integer the rowspan for the table cell, 0 if not set. - */ - public function setRowSpan($value) - { - $this->setViewState('RowSpan', TPropertyValue::ensureInteger($value), 0); - } - - /** - * @return boolean whether the text content wraps within a table cell. Defaults to true. - */ - public function getWrap() - { - if($this->getHasStyle()) - return $this->getStyle()->getWrap(); - else - return true; - } - - /** - * Sets the value indicating whether the text content wraps within a table cell. - * @param boolean whether the text content wraps within a table cell. - */ - public function setWrap($value) - { - $this->getStyle()->setWrap($value); - } - - /** - * @return string the text content of the table cell. - */ - public function getText() - { - return $this->getViewState('Text',''); - } - - /** - * Sets the text content of the table cell. - * If the text content is empty, body content (child controls) of the cell will be rendered. - * @param string the text content - */ - public function setText($value) - { - $this->setViewState('Text',$value,''); - } - - /** - * Adds attributes to renderer. - * @param THtmlWriter the renderer - */ - protected function addAttributesToRender($writer) - { - parent::addAttributesToRender($writer); - if(($colspan=$this->getColumnSpan())>0) - $writer->addAttribute('colspan',"$colspan"); - if(($rowspan=$this->getRowSpan())>0) - $writer->addAttribute('rowspan',"$rowspan"); - } - - /** - * Renders body contents of the table cell. - * @param THtmlWriter the writer used for the rendering purpose. - */ - protected function renderContents($writer) - { - if(($text=$this->getText())==='') - parent::renderContents($writer); - else - $writer->write($text); - } -} - -/** - * TTableHeaderCell class. - * - * TTableHeaderCell displays a table header cell on a Web page. - * - * @author Qiang Xue - * @version $Revision: $ $Date: $ - * @package System.Web.UI.WebControls - * @since 3.0 - */ -class TTableHeaderCell extends TTableCell -{ - /** - * @return string tag name for the table header cell - */ - protected function getTagName() - { - return 'th'; - } - - /** - * Adds attributes to renderer. - * @param THtmlWriter the renderer - */ - protected function addAttributesToRender($writer) - { - parent::addAttributesToRender($writer); - if(($scope=$this->getScope())!=='NotSet') - $writer->addAttribute('scope',$scope==='Row'?'row':'col'); - if(($text=$this->getAbbreviatedText())!=='') - $writer->addAttribute('abbr',$text); - if(($text=$this->getCategoryText())!=='') - $writer->addAttribute('axis',$text); - } - - /** - * @return string the scope of the cells that the header cell applies to. Defaults to 'NotSet'. - */ - public function getScope() - { - return $this->getViewState('Scope','NotSet'); - } - - /** - * @param string the scope of the cells that the header cell applies to. - * Valid values include 'NotSet','Row','Column'. - */ - public function setScope($value) - { - $this->setViewState('Scope',TPropertyValue::ensureEnum($value,'NotSet','Row','Column'),'NotSet'); - } - - /** - * @return string the abbr attribute of the HTML th element - */ - public function getAbbreviatedText() - { - return $this->getViewState('AbbreviatedText',''); - } - - /** - * @param string the abbr attribute of the HTML th element - */ - public function setAbbreviatedText($value) - { - $this->setViewState('AbbreviatedText',$value,''); - } - - /** - * @return string the axis attribute of the HTML th element - */ - public function getCategoryText() - { - return $this->getViewState('CategoryText',''); - } - - /** - * @param string the axis attribute of the HTML th element - */ - public function setCategoryText($value) - { - $this->setViewState('CategoryText',$value,''); - } -} - - /** * TTableRowCollection class. * @@ -747,67 +362,4 @@ class TTableRowCollection extends TList } } - -/** - * TTableCellCollection class. - * - * TTableCellCollection is used to maintain a list of cells belong to a table row. - * - * @author Qiang Xue - * @version $Revision: $ $Date: $ - * @package System.Web.UI.WebControls - * @since 3.0 - */ -class TTableCellCollection extends TList -{ - /** - * @var mixed cell collection owner - */ - private $_owner=null; - - /** - * Constructor. - * @param mixed cell collection owner - */ - public function __construct($owner=null) - { - $this->_owner=$owner; - } - - - /** - * 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); - if($this->_owner) - $this->_owner->getControls()->insertAt($index,$item); - } - else - throw new TInvalidDataTypeException('tablecellcollection_tablecell_required'); - } - - /** - * Removes an item at the specified position. - * This overrides the parent implementation by performing additional - * cleanup work when removing a table cell. - * @param integer the index of the item to be removed. - * @return mixed the removed item. - */ - public function removeAt($index) - { - $item=parent::removeAt($index); - if($item instanceof TTableCell) - $this->_owner->getControls()->remove($item); - return $item; - } -} ?> \ No newline at end of file -- cgit v1.2.3