From 903ae8a581fac1e6917fc3e31d2ad8fb91df80c3 Mon Sep 17 00:00:00 2001 From: ctrlaltca <> Date: Thu, 12 Jul 2012 11:21:01 +0000 Subject: standardize the use of unix eol; use svn properties to enforce native eol --- framework/Web/UI/WebControls/TBoundColumn.php | 498 +++++++++++++------------- 1 file changed, 249 insertions(+), 249 deletions(-) (limited to 'framework/Web/UI/WebControls/TBoundColumn.php') diff --git a/framework/Web/UI/WebControls/TBoundColumn.php b/framework/Web/UI/WebControls/TBoundColumn.php index 43ef28c2..b7bbc5da 100644 --- a/framework/Web/UI/WebControls/TBoundColumn.php +++ b/framework/Web/UI/WebControls/TBoundColumn.php @@ -1,249 +1,249 @@ - - * @link http://www.pradosoft.com/ - * @copyright Copyright © 2005-2012 PradoSoft - * @license http://www.pradosoft.com/license/ - * @version $Id$ - * @package System.Web.UI.WebControls - */ - -/** - * TDataGridColumn class file - */ -Prado::using('System.Web.UI.WebControls.TDataGridColumn'); - -/** - * TBoundColumn class - * - * TBoundColumn represents a column that is bound to a field in a data source. - * The cells in the column will be displayed using the data indexed by - * {@link setDataField DataField}. You can customize the display by - * setting {@link setDataFormatString DataFormatString}. - * - * If {@link setReadOnly ReadOnly} is false, TBoundColumn will display cells in edit mode - * with textboxes. Otherwise, a static text is displayed. - * - * When a datagrid row is in edit mode, the textbox control in the TBoundColumn - * can be accessed by one of the following two methods: - * - * $datagridItem->BoundColumnID->TextBox - * $datagridItem->BoundColumnID->Controls[0] - * - * The second method is possible because the textbox control created within the - * datagrid cell is the first child. - * - * Since v3.1.0, TBoundColumn has introduced two new properties {@link setItemRenderer ItemRenderer} - * and {@link setEditItemRenderer EditItemRenderer} which can be used to specify - * the layout of the datagrid cells in browsing and editing mode. - * A renderer refers to a control class that is to be instantiated as a control. - * For more details, see {@link TRepeater} and {@link TDataList}. - * - * @author Qiang Xue - * @version $Id$ - * @package System.Web.UI.WebControls - * @since 3.0 - */ -class TBoundColumn extends TDataGridColumn -{ - /** - * @return string the class name for the item cell renderer. Defaults to empty, meaning not set. - * @since 3.1.0 - */ - public function getItemRenderer() - { - return $this->getViewState('ItemRenderer',''); - } - - /** - * Sets the item cell renderer class. - * - * If not empty, the class will be used to instantiate as a child control in the item cells of the column. - * - * If the class implements {@link IDataRenderer}, the Data property - * will be set as the data associated with the datagrid cell during databinding. - * The data can be either the whole data row or a field of the row if - * {@link getDataField DataField} is not empty. If {@link getDataFormatString DataFormatString} - * is not empty, the data will be formatted first before passing to the renderer. - * - * @param string the renderer class name in namespace format. - * @since 3.1.0 - */ - public function setItemRenderer($value) - { - $this->setViewState('ItemRenderer',$value,''); - } - - /** - * @return string the class name for the edit item cell renderer. Defaults to empty, meaning not set. - * @since 3.1.0 - */ - public function getEditItemRenderer() - { - return $this->getViewState('EditItemRenderer',''); - } - - /** - * Sets the edit item cell renderer class. - * - * If not empty, the class will be used to instantiate as a child control in the item cell that is in edit mode. - * - * If the class implements {@link IDataRenderer}, the Data property - * will be set as the data associated with the datagrid cell during databinding. - * The data can be either the whole data row or a field of the row if - * {@link getDataField DataField} is not empty. If {@link getDataFormatString DataFormatString} - * is not empty, the data will be formatted first before passing to the renderer. - * - * @param string the renderer class name in namespace format. - * @since 3.1.0 - */ - public function setEditItemRenderer($value) - { - $this->setViewState('EditItemRenderer',$value,''); - } - - /** - * @return string the field name from the data source to bind to the column - */ - public function getDataField() - { - return $this->getViewState('DataField',''); - } - - /** - * @param string the field name from the data source to bind to the column - */ - public function setDataField($value) - { - $this->setViewState('DataField',$value,''); - } - - /** - * @return string the formatting string used to control how the bound data will be displayed. - */ - public function getDataFormatString() - { - return $this->getViewState('DataFormatString',''); - } - - /** - * @param string the formatting string used to control how the bound data will be displayed. - */ - public function setDataFormatString($value) - { - $this->setViewState('DataFormatString',$value,''); - } - - /** - * @return boolean whether the items in the column can be edited. Defaults to false. - */ - public function getReadOnly() - { - return $this->getViewState('ReadOnly',false); - } - - /** - * @param boolean whether the items in the column can be edited - */ - public function setReadOnly($value) - { - $this->setViewState('ReadOnly',TPropertyValue::ensureBoolean($value),false); - } - - /** - * Initializes the specified cell to its initial values. - * This method overrides the parent implementation. - * It creates a textbox for item in edit mode and the column is not read-only. - * Otherwise it displays a static text. - * The caption of the button and the static text are retrieved - * from the datasource. - * @param TTableCell the cell to be initialized. - * @param integer the index to the Columns property that the cell resides in. - * @param string the type of cell (Header,Footer,Item,AlternatingItem,EditItem,SelectedItem) - */ - public function initializeCell($cell,$columnIndex,$itemType) - { - $item=$cell->getParent(); - switch($itemType) - { - case TListItemType::Item: - case TListItemType::AlternatingItem: - case TListItemType::SelectedItem: - if(($classPath=$this->getItemRenderer())!=='') - { - $control=Prado::createComponent($classPath); - if($control instanceof IItemDataRenderer) - { - $control->setItemIndex($item->getItemIndex()); - $control->setItemType($item->getItemType()); - } - $cell->getControls()->add($control); - } - else - $control=$cell; - $control->attachEventHandler('OnDataBinding',array($this,'dataBindColumn')); - break; - case TListItemType::EditItem: - if(!$this->getReadOnly()) - { - if(($classPath=$this->getEditItemRenderer())!=='') - { - $control=Prado::createComponent($classPath); - if($control instanceof IItemDataRenderer) - { - $control->setItemIndex($item->getItemIndex()); - $control->setItemType($item->getItemType()); - } - $cell->getControls()->add($control); - $cell->registerObject('EditControl',$control); - } - else - { - $control=Prado::createComponent('System.Web.UI.WebControls.TTextBox'); - $cell->getControls()->add($control); - $cell->registerObject('TextBox',$control); - } - } - else - { - if(($classPath=$this->getItemRenderer())!=='') - { - $control=Prado::createComponent($classPath); - if($control instanceof IItemDataRenderer) - { - $control->setItemIndex($item->getItemIndex()); - $control->setItemType($item->getItemType()); - } - $cell->getControls()->add($control); - } - else - $control=$cell; - } - $control->attachEventHandler('OnDataBinding',array($this,'dataBindColumn')); - break; - default: - parent::initializeCell($cell,$columnIndex,$itemType); - break; - } - } - - /** - * Databinds a cell in the column. - * This method is invoked when datagrid performs databinding. - * It populates the content of the cell with the relevant data from data source. - */ - public function dataBindColumn($sender,$param) - { - $item=$sender->getNamingContainer(); - $data=$item->getData(); - $formatString=$this->getDataFormatString(); - if(($field=$this->getDataField())!=='') - $value=$this->formatDataValue($formatString,$this->getDataFieldValue($data,$field)); - else - $value=$this->formatDataValue($formatString,$data); - $sender->setData($value); - } -} - + + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2005-2012 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Id$ + * @package System.Web.UI.WebControls + */ + +/** + * TDataGridColumn class file + */ +Prado::using('System.Web.UI.WebControls.TDataGridColumn'); + +/** + * TBoundColumn class + * + * TBoundColumn represents a column that is bound to a field in a data source. + * The cells in the column will be displayed using the data indexed by + * {@link setDataField DataField}. You can customize the display by + * setting {@link setDataFormatString DataFormatString}. + * + * If {@link setReadOnly ReadOnly} is false, TBoundColumn will display cells in edit mode + * with textboxes. Otherwise, a static text is displayed. + * + * When a datagrid row is in edit mode, the textbox control in the TBoundColumn + * can be accessed by one of the following two methods: + * + * $datagridItem->BoundColumnID->TextBox + * $datagridItem->BoundColumnID->Controls[0] + * + * The second method is possible because the textbox control created within the + * datagrid cell is the first child. + * + * Since v3.1.0, TBoundColumn has introduced two new properties {@link setItemRenderer ItemRenderer} + * and {@link setEditItemRenderer EditItemRenderer} which can be used to specify + * the layout of the datagrid cells in browsing and editing mode. + * A renderer refers to a control class that is to be instantiated as a control. + * For more details, see {@link TRepeater} and {@link TDataList}. + * + * @author Qiang Xue + * @version $Id$ + * @package System.Web.UI.WebControls + * @since 3.0 + */ +class TBoundColumn extends TDataGridColumn +{ + /** + * @return string the class name for the item cell renderer. Defaults to empty, meaning not set. + * @since 3.1.0 + */ + public function getItemRenderer() + { + return $this->getViewState('ItemRenderer',''); + } + + /** + * Sets the item cell renderer class. + * + * If not empty, the class will be used to instantiate as a child control in the item cells of the column. + * + * If the class implements {@link IDataRenderer}, the Data property + * will be set as the data associated with the datagrid cell during databinding. + * The data can be either the whole data row or a field of the row if + * {@link getDataField DataField} is not empty. If {@link getDataFormatString DataFormatString} + * is not empty, the data will be formatted first before passing to the renderer. + * + * @param string the renderer class name in namespace format. + * @since 3.1.0 + */ + public function setItemRenderer($value) + { + $this->setViewState('ItemRenderer',$value,''); + } + + /** + * @return string the class name for the edit item cell renderer. Defaults to empty, meaning not set. + * @since 3.1.0 + */ + public function getEditItemRenderer() + { + return $this->getViewState('EditItemRenderer',''); + } + + /** + * Sets the edit item cell renderer class. + * + * If not empty, the class will be used to instantiate as a child control in the item cell that is in edit mode. + * + * If the class implements {@link IDataRenderer}, the Data property + * will be set as the data associated with the datagrid cell during databinding. + * The data can be either the whole data row or a field of the row if + * {@link getDataField DataField} is not empty. If {@link getDataFormatString DataFormatString} + * is not empty, the data will be formatted first before passing to the renderer. + * + * @param string the renderer class name in namespace format. + * @since 3.1.0 + */ + public function setEditItemRenderer($value) + { + $this->setViewState('EditItemRenderer',$value,''); + } + + /** + * @return string the field name from the data source to bind to the column + */ + public function getDataField() + { + return $this->getViewState('DataField',''); + } + + /** + * @param string the field name from the data source to bind to the column + */ + public function setDataField($value) + { + $this->setViewState('DataField',$value,''); + } + + /** + * @return string the formatting string used to control how the bound data will be displayed. + */ + public function getDataFormatString() + { + return $this->getViewState('DataFormatString',''); + } + + /** + * @param string the formatting string used to control how the bound data will be displayed. + */ + public function setDataFormatString($value) + { + $this->setViewState('DataFormatString',$value,''); + } + + /** + * @return boolean whether the items in the column can be edited. Defaults to false. + */ + public function getReadOnly() + { + return $this->getViewState('ReadOnly',false); + } + + /** + * @param boolean whether the items in the column can be edited + */ + public function setReadOnly($value) + { + $this->setViewState('ReadOnly',TPropertyValue::ensureBoolean($value),false); + } + + /** + * Initializes the specified cell to its initial values. + * This method overrides the parent implementation. + * It creates a textbox for item in edit mode and the column is not read-only. + * Otherwise it displays a static text. + * The caption of the button and the static text are retrieved + * from the datasource. + * @param TTableCell the cell to be initialized. + * @param integer the index to the Columns property that the cell resides in. + * @param string the type of cell (Header,Footer,Item,AlternatingItem,EditItem,SelectedItem) + */ + public function initializeCell($cell,$columnIndex,$itemType) + { + $item=$cell->getParent(); + switch($itemType) + { + case TListItemType::Item: + case TListItemType::AlternatingItem: + case TListItemType::SelectedItem: + if(($classPath=$this->getItemRenderer())!=='') + { + $control=Prado::createComponent($classPath); + if($control instanceof IItemDataRenderer) + { + $control->setItemIndex($item->getItemIndex()); + $control->setItemType($item->getItemType()); + } + $cell->getControls()->add($control); + } + else + $control=$cell; + $control->attachEventHandler('OnDataBinding',array($this,'dataBindColumn')); + break; + case TListItemType::EditItem: + if(!$this->getReadOnly()) + { + if(($classPath=$this->getEditItemRenderer())!=='') + { + $control=Prado::createComponent($classPath); + if($control instanceof IItemDataRenderer) + { + $control->setItemIndex($item->getItemIndex()); + $control->setItemType($item->getItemType()); + } + $cell->getControls()->add($control); + $cell->registerObject('EditControl',$control); + } + else + { + $control=Prado::createComponent('System.Web.UI.WebControls.TTextBox'); + $cell->getControls()->add($control); + $cell->registerObject('TextBox',$control); + } + } + else + { + if(($classPath=$this->getItemRenderer())!=='') + { + $control=Prado::createComponent($classPath); + if($control instanceof IItemDataRenderer) + { + $control->setItemIndex($item->getItemIndex()); + $control->setItemType($item->getItemType()); + } + $cell->getControls()->add($control); + } + else + $control=$cell; + } + $control->attachEventHandler('OnDataBinding',array($this,'dataBindColumn')); + break; + default: + parent::initializeCell($cell,$columnIndex,$itemType); + break; + } + } + + /** + * Databinds a cell in the column. + * This method is invoked when datagrid performs databinding. + * It populates the content of the cell with the relevant data from data source. + */ + public function dataBindColumn($sender,$param) + { + $item=$sender->getNamingContainer(); + $data=$item->getData(); + $formatString=$this->getDataFormatString(); + if(($field=$this->getDataField())!=='') + $value=$this->formatDataValue($formatString,$this->getDataFieldValue($data,$field)); + else + $value=$this->formatDataValue($formatString,$data); + $sender->setData($value); + } +} + -- cgit v1.2.3