From 6f00b28a1d9c7409c956a83866eac48a9493e83c Mon Sep 17 00:00:00 2001 From: "ctrlaltca@gmail.com" <> Date: Sat, 21 May 2011 17:10:29 +0000 Subject: branch/3.1: merged bugfixesfrom trunk/ up to r2880; correct svn:mergeinfo property --- framework/Web/UI/WebControls/TBoundColumn.php | 16 ++- framework/Web/UI/WebControls/TDatePicker.php | 4 +- framework/Web/UI/WebControls/TListControl.php | 151 +------------------------- 3 files changed, 21 insertions(+), 150 deletions(-) (limited to 'framework/Web/UI/WebControls') diff --git a/framework/Web/UI/WebControls/TBoundColumn.php b/framework/Web/UI/WebControls/TBoundColumn.php index fdcde9b2..098ffeef 100644 --- a/framework/Web/UI/WebControls/TBoundColumn.php +++ b/framework/Web/UI/WebControls/TBoundColumn.php @@ -197,6 +197,7 @@ class TBoundColumn extends TDataGridColumn $control->setItemType($item->getItemType()); } $cell->getControls()->add($control); + $cell->registerObject('EditControl',$control); } else { @@ -206,7 +207,20 @@ class TBoundColumn extends TDataGridColumn } } else - $control=$cell; + { + 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: diff --git a/framework/Web/UI/WebControls/TDatePicker.php b/framework/Web/UI/WebControls/TDatePicker.php index e678b046..c81d8bc1 100644 --- a/framework/Web/UI/WebControls/TDatePicker.php +++ b/framework/Web/UI/WebControls/TDatePicker.php @@ -487,7 +487,7 @@ class TDatePicker extends TTextBox if(isset($values[$key.'$day'])) $day = intval($values[$key.'$day']); else - $day = 1; + $day = $date['mday']; if(isset($values[$key.'$month'])) $month = intval($values[$key.'$month']) + 1; @@ -961,4 +961,4 @@ class TDatePickerPositionMode extends TEnumerable { const Top='Top'; const Bottom='Bottom'; -} \ No newline at end of file +} diff --git a/framework/Web/UI/WebControls/TListControl.php b/framework/Web/UI/WebControls/TListControl.php index c69b387e..e0c25b9e 100644 --- a/framework/Web/UI/WebControls/TListControl.php +++ b/framework/Web/UI/WebControls/TListControl.php @@ -1,10 +1,12 @@ * @author Qiang Xue * @link http://www.pradosoft.com/ - * @copyright Copyright © 2005-2008 PradoSoft + * @copyright Copyright © 2005-2010 PradoSoft * @license http://www.pradosoft.com/license/ * @version $Id$ * @package System.Web.UI.WebControls @@ -15,10 +17,10 @@ */ Prado::using('System.Web.UI.WebControls.TDataBoundControl'); Prado::using('System.Web.UI.WebControls.TListItem'); +Prado::using('System.Collections.TListItemCollection'); Prado::using('System.Collections.TAttributeCollection'); Prado::using('System.Util.TDataFieldAccessor'); - /** * TListControl class * @@ -878,151 +880,6 @@ abstract class TListControl extends TDataBoundControl implements IDataRenderer } } -/** - * TListItemCollection class. - * - * TListItemCollection maintains a list of {@link TListItem} for {@link TListControl}. - * - * @author Qiang Xue - * @version $Id$ - * @package System.Web.UI.WebControls - * @since 3.0 - */ -class TListItemCollection extends TList -{ - /** - * Creates a list item object. - * This method may be overriden to provide a customized list item object. - * @param integer index where the newly created item is to be inserted at. - * If -1, the item will be appended to the end. - * @return TListItem list item object - */ - public function createListItem($index=-1) - { - $item=$this->createNewListItem(); - if($index<0) - $this->add($item); - else - $this->insertAt($index,$item); - return $item; - } - - /** - * @return TListItem new item. - */ - protected function createNewListItem($text=null) - { - $item = new TListItem; - if($text!==null) - $item->setText($text); - return $item; - } - - /** - * Inserts an item into the collection. - * @param integer the location where the item will be inserted. - * The current item at the place and the following ones will be moved backward. - * @param TListItem the item to be inserted. - * @throws TInvalidDataTypeException if the item being inserted is neither a string nor TListItem - */ - public function insertAt($index,$item) - { - if(is_string($item)) - $item = $this->createNewListItem($item); - if(!($item instanceof TListItem)) - throw new TInvalidDataTypeException('listitemcollection_item_invalid',get_class($this)); - parent::insertAt($index,$item); - } - - /** - * Finds the lowest cardinal index of the item whose value is the one being looked for. - * @param string the value to be looked for - * @param boolean whether to look for disabled items also - * @return integer the index of the item found, -1 if not found. - */ - public function findIndexByValue($value,$includeDisabled=true) - { - $value=TPropertyValue::ensureString($value); - $index=0; - foreach($this as $item) - { - if($item->getValue()===$value && ($includeDisabled || $item->getEnabled())) - return $index; - $index++; - } - return -1; - } - - /** - * Finds the lowest cardinal index of the item whose text is the one being looked for. - * @param string the text to be looked for - * @param boolean whether to look for disabled items also - * @return integer the index of the item found, -1 if not found. - */ - public function findIndexByText($text,$includeDisabled=true) - { - $text=TPropertyValue::ensureString($text); - $index=0; - foreach($this as $item) - { - if($item->getText()===$text && ($includeDisabled || $item->getEnabled())) - return $index; - $index++; - } - return -1; - } - - /** - * Finds the item whose value is the one being looked for. - * @param string the value to be looked for - * @param boolean whether to look for disabled items also - * @return TListItem the item found, null if not found. - */ - public function findItemByValue($value,$includeDisabled=true) - { - if(($index=$this->findIndexByValue($value,$includeDisabled))>=0) - return $this->itemAt($index); - else - return null; - } - - /** - * Finds the item whose text is the one being looked for. - * @param string the text to be looked for - * @param boolean whether to look for disabled items also - * @return TListItem the item found, null if not found. - */ - public function findItemByText($text,$includeDisabled=true) - { - if(($index=$this->findIndexByText($text,$includeDisabled))>=0) - return $this->itemAt($index); - else - return null; - } - - /** - * Loads state into every item in the collection. - * This method should only be used by framework and control developers. - * @param array|null state to be loaded. - */ - public function loadState($state) - { - $this->clear(); - if($state!==null) - $this->copyFrom($state); - } - - /** - * Saves state of items. - * This method should only be used by framework and control developers. - * @return array|null the saved state - */ - public function saveState() - { - return ($this->getCount()>0) ? $this->toArray() : null; - } -} - /** * IListControlAdapter interface * -- cgit v1.2.3