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 | |
parent | a14913019919d7b6c2d13769b151a645b5226e02 (diff) |
Refactored TTable and TTableRow.
Diffstat (limited to 'framework/Web')
-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 |