From 373d8acc503b94ea09823f49e2ab5e395eccc584 Mon Sep 17 00:00:00 2001 From: xue <> Date: Wed, 12 Apr 2006 12:18:24 +0000 Subject: Merge from 3.0 branch till 898. --- framework/Web/UI/WebControls/TDataList.php | 5 ++-- framework/Web/UI/WebControls/TRepeatInfo.php | 38 +++++++++++++++++++++++++--- framework/Web/UI/WebControls/TWizard.php | 10 ++++++++ 3 files changed, 48 insertions(+), 5 deletions(-) (limited to 'framework/Web/UI') diff --git a/framework/Web/UI/WebControls/TDataList.php b/framework/Web/UI/WebControls/TDataList.php index f5f4b9fa..695d072a 100644 --- a/framework/Web/UI/WebControls/TDataList.php +++ b/framework/Web/UI/WebControls/TDataList.php @@ -627,7 +627,7 @@ class TDataList extends TBaseDataList implements INamingContainer, IRepeatInfoUs } /** - * @param string how the list should be displayed, using table or using line breaks (Table, Flow) + * @param string how the list should be displayed, using table or using line breaks (Table, Flow, Raw) */ public function setRepeatLayout($value) { @@ -825,7 +825,8 @@ class TDataList extends TBaseDataList implements INamingContainer, IRepeatInfoUs public function renderItem($writer,$repeatInfo,$itemType,$index) { $item=$this->getItem($itemType,$index); - if($repeatInfo->getRepeatLayout()==='Table') + $layout=$repeatInfo->getRepeatLayout(); + if($layout==='Table' || $layout==='Raw') $item->renderContents($writer); else $item->renderControl($writer); diff --git a/framework/Web/UI/WebControls/TRepeatInfo.php b/framework/Web/UI/WebControls/TRepeatInfo.php index 5f4fb825..10c49691 100644 --- a/framework/Web/UI/WebControls/TRepeatInfo.php +++ b/framework/Web/UI/WebControls/TRepeatInfo.php @@ -57,13 +57,16 @@ interface IRepeatInfoUser * TRepeatInfo class. * TRepeatInfo represents repeat information for controls like {@link TCheckBoxList}. * The layout of the repeated items is specified via {@link setRepeatLayout RepeatLayout}, - * which can be either 'Table' (default) or 'Flow'. + * which can be either 'Table' (default), 'Flow' or 'Raw'. * A table layout uses HTML table cells to organize the items while * a flow layout uses line breaks to organize the items. * The number of columns used to display the items is specified via * {@link setRepeatColumns RepeatColumns} property, while the {@link setRepeatDirection RepeatDirection} * governs the order of the items being rendered. * + * Note, the Raw layout does not contain any formatting tags and thus ignores + * the column and repeat direction settings. + * * @author Qiang Xue * @version $Revision: $ $Date: $ * @package System.Web.UI.WebControls @@ -169,11 +172,12 @@ class TRepeatInfo extends TComponent } /** - * @param string how the repeated items should be displayed, using table or using line breaks. Defaults to 'Table'. + * @param string how the repeated items should be displayed, using table or using line breaks. + * Valid values include 'Table', 'Flow' and 'Raw'. */ public function setRepeatLayout($value) { - $this->_repeatLayout=TPropertyValue::ensureEnum($value,array('Table','Flow')); + $this->_repeatLayout=TPropertyValue::ensureEnum($value,array('Table','Flow','Raw')); } /** @@ -192,6 +196,11 @@ class TRepeatInfo extends TComponent $control->setCaptionAlign($this->_captionAlign); } } + else if($this->_repeatLayout==='Raw') + { + $this->renderRawContents($writer,$user); + return; + } else $control=new TWebControl; $control->setID($user->getClientID()); @@ -209,6 +218,29 @@ class TRepeatInfo extends TComponent $control->renderEndTag($writer); } + /** + * Renders contents in raw format. + * @param THtmlWriter writer for the rendering purpose + * @param IRepeatInfoUser repeat information user + */ + protected function renderRawContents($writer,$user) + { + if($user->getHasHeader()) + $user->renderItem($writer,$this,'Header',-1); + + // render items + $hasSeparators=$user->getHasSeparators(); + $itemCount=$user->getItemCount(); + for($i=0;$i<$itemCount;++$i) + { + $user->renderItem($writer,$this,'Item',$i); + if($hasSeparators && $i!=$itemCount-1) + $user->renderItem($writer,$this,'Separator',$i); + } + if($user->getHasFooter()) + $user->renderItem($writer,$this,'Footer',-1); + } + /** * Renders contents in horizontal repeat direction. * @param THtmlWriter writer for the rendering purpose diff --git a/framework/Web/UI/WebControls/TWizard.php b/framework/Web/UI/WebControls/TWizard.php index 794fb4da..426fd73d 100644 --- a/framework/Web/UI/WebControls/TWizard.php +++ b/framework/Web/UI/WebControls/TWizard.php @@ -734,6 +734,16 @@ class TWizard extends TWebControl implements INamingContainer $history->push($index); } + /** + * Loads state into the wizard. + * This method is invoked by the framework when the control state is being saved. + */ + public function loadState() + { + // a dummy call to ensure the step is activated + $this->getActiveStep(); + } + /** * Indicates the wizard needs to recreate all child controls. */ -- cgit v1.2.3