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 +--------------------- framework/Web/UI/WebControls/TTableCell.php | 195 +++++++++ framework/Web/UI/WebControls/TTableHeaderCell.php | 104 +++++ framework/Web/UI/WebControls/TTableRow.php | 202 +++++++++ 4 files changed, 517 insertions(+), 464 deletions(-) create mode 100644 framework/Web/UI/WebControls/TTableCell.php create mode 100644 framework/Web/UI/WebControls/TTableHeaderCell.php create mode 100644 framework/Web/UI/WebControls/TTableRow.php (limited to 'framework/Web/UI/WebControls') 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 diff --git a/framework/Web/UI/WebControls/TTableCell.php b/framework/Web/UI/WebControls/TTableCell.php new file mode 100644 index 00000000..34b8940a --- /dev/null +++ b/framework/Web/UI/WebControls/TTableCell.php @@ -0,0 +1,195 @@ + + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2005 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Revision: $ $Date: $ + * @package System.Web.UI.WebControls + */ + +/** + * 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); + } +} + +?> \ No newline at end of file diff --git a/framework/Web/UI/WebControls/TTableHeaderCell.php b/framework/Web/UI/WebControls/TTableHeaderCell.php new file mode 100644 index 00000000..12009de6 --- /dev/null +++ b/framework/Web/UI/WebControls/TTableHeaderCell.php @@ -0,0 +1,104 @@ + + * @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'); + + +/** + * 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,''); + } +} + +?> \ No newline at end of file diff --git a/framework/Web/UI/WebControls/TTableRow.php b/framework/Web/UI/WebControls/TTableRow.php new file mode 100644 index 00000000..d752723d --- /dev/null +++ b/framework/Web/UI/WebControls/TTableRow.php @@ -0,0 +1,202 @@ + + * @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 + * @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(); + } + } + } +} + + + +/** + * 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