diff options
| author | xue <> | 2006-05-04 02:52:23 +0000 | 
|---|---|---|
| committer | xue <> | 2006-05-04 02:52:23 +0000 | 
| commit | 49ccf41324a2c87b20b84f72355b79d92d6f3d0c (patch) | |
| tree | 7ed04c5b14efdd62f4619b9a894a47e272420742 /framework/Web/UI/WebControls | |
| parent | a14913019919d7b6c2d13769b151a645b5226e02 (diff) | |
Refactored TTable and TTableRow.
Diffstat (limited to 'framework/Web/UI/WebControls')
| -rw-r--r-- | framework/Web/UI/WebControls/TTable.php | 56 | ||||
| -rw-r--r-- | framework/Web/UI/WebControls/TTableRow.php | 62 | 
2 files changed, 31 insertions, 87 deletions
| diff --git a/framework/Web/UI/WebControls/TTable.php b/framework/Web/UI/WebControls/TTable.php index 4fcbb6fb..e7baca02 100644 --- a/framework/Web/UI/WebControls/TTable.php +++ b/framework/Web/UI/WebControls/TTable.php @@ -124,13 +124,21 @@ class TTable extends TWebControl  	}
  	/**
 -	 * @return TTableRowCollection list of {@link TTableRow} controls
 +	 * Creates a control collection object that is to be used to hold child controls
 +	 * @return TTableRowCollection control collection
 +	 * @see getControls
 +	 */
 +	protected function createControlCollection()
 +	{
 +		return new TTableRowCollection($this);
 +	}
 +
 +	/**
 +	 * @return TTableCellCollection list of {@link TTableCell} controls
  	 */
  	public function getRows()
  	{
 -		if(!$this->_rows)
 -			$this->_rows=new TTableRowCollection($this);
 -		return $this->_rows;
 +		return $this->getControls();
  	}
  	/**
 @@ -288,10 +296,10 @@ class TTable extends TWebControl  	 */
  	public function renderContents($writer)
  	{
 -		if($this->_rows)
 +		if($this->getHasControls())
  		{
  			$writer->writeLine();
 -			foreach($this->_rows as $row)
 +			foreach($this->getControls() as $row)
  			{
  				$row->renderControl($writer);
  				$writer->writeLine();
 @@ -300,6 +308,7 @@ class TTable extends TWebControl  	}
  }
 +
  /**
   * TTableRowCollection class.
   *
 @@ -310,23 +319,9 @@ class TTable extends TWebControl   * @package System.Web.UI.WebControls
   * @since 3.0
   */
 -class TTableRowCollection extends TList
 +class TTableRowCollection extends TControlCollection
  {
  	/**
 -	 * @var mixed row collection owner
 -	 */
 -	private $_owner=null;
 -
 -	/**
 -	 * Constructor.
 -	 * @param mixed row 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 row.
 @@ -337,29 +332,10 @@ class TTableRowCollection extends TList  	public function insertAt($index,$item)
  	{
  		if($item instanceof TTableRow)
 -		{
  			parent::insertAt($index,$item);
 -			if($this->_owner)
 -				$this->_owner->getControls()->insertAt($index,$item);
 -		}
  		else
  			throw new TInvalidDataTypeException('tablerowcollection_tablerow_required');
  	}
 -
 -	/**
 -	 * Removes an item at the specified position.
 -	 * This overrides the parent implementation by performing additional
 -	 * cleanup work when removing a table row.
 -	 * @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 TTableRow)
 -			$this->_owner->getControls()->remove($item);
 -		return $item;
 -	}
  }
  ?>
\ No newline at end of file diff --git a/framework/Web/UI/WebControls/TTableRow.php b/framework/Web/UI/WebControls/TTableRow.php index 6a3f196a..daf921ce 100644 --- a/framework/Web/UI/WebControls/TTableRow.php +++ b/framework/Web/UI/WebControls/TTableRow.php @@ -32,11 +32,6 @@ Prado::using('System.Web.UI.WebControls.TTableHeaderCell');  class TTableRow extends TWebControl
  {
  	/**
 -	 * @var TTableCellCollection cell collection
 -	 */
 -	private $_cells=null;
 -
 -	/**
  	 * @return string tag name for the table
  	 */
  	protected function getTagName()
 @@ -67,13 +62,21 @@ class TTableRow extends TWebControl  	}
  	/**
 +	 * 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()
  	{
 -		if(!$this->_cells)
 -			$this->_cells=new TTableCellCollection($this);
 -		return $this->_cells;
 +		return $this->getControls();
  	}
  	/**
 @@ -124,10 +127,10 @@ class TTableRow extends TWebControl  	 */
  	public function renderContents($writer)
  	{
 -		if($this->_cells)
 +		if($this->getHasControls())
  		{
  			$writer->writeLine();
 -			foreach($this->_cells as $cell)
 +			foreach($this->getControls() as $cell)
  			{
  				$cell->renderControl($writer);
  				$writer->writeLine();
 @@ -136,8 +139,6 @@ class TTableRow extends TWebControl  	}
  }
 -
 -
  /**
   * TTableCellCollection class.
   *
 @@ -148,24 +149,9 @@ class TTableRow extends TWebControl   * @package System.Web.UI.WebControls
   * @since 3.0
   */
 -class TTableCellCollection extends TList
 +class TTableCellCollection extends TControlCollection
  {
  	/**
 -	 * @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.
 @@ -176,28 +162,10 @@ class TTableCellCollection extends TList  	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 | 
