diff options
author | ctrlaltca <ctrlaltca@gmail.com> | 2014-08-26 16:59:21 +0200 |
---|---|---|
committer | ctrlaltca <ctrlaltca@gmail.com> | 2014-08-26 16:59:21 +0200 |
commit | 74b31be9515eddfa63005d6760614badfaba9fea (patch) | |
tree | 47c952901dcb5eccd6dd8b7c6ee7e0b6bf176510 /framework/Web/UI/WebControls/TWebControlDecorator.php | |
parent | 2b11341614ac4a15be697fa8acad07055154ac54 (diff) | |
parent | 0c5026b55cde5c104f10686afd8b441568175d38 (diff) |
Backports for Prado 3.2.4
Diffstat (limited to 'framework/Web/UI/WebControls/TWebControlDecorator.php')
-rw-r--r-- | framework/Web/UI/WebControls/TWebControlDecorator.php | 134 |
1 files changed, 66 insertions, 68 deletions
diff --git a/framework/Web/UI/WebControls/TWebControlDecorator.php b/framework/Web/UI/WebControls/TWebControlDecorator.php index 9b1c3652..d08d9c82 100644 --- a/framework/Web/UI/WebControls/TWebControlDecorator.php +++ b/framework/Web/UI/WebControls/TWebControlDecorator.php @@ -4,23 +4,22 @@ * * @author Brad Anderson <javalizard@gmail.com> * @link http://www.pradosoft.com/ - * @copyright Copyright © 2005-2013 PradoSoft + * @copyright Copyright © 2005-2014 PradoSoft * @license http://www.pradosoft.com/license/ - * @version $Id: TWebControlDecorator.php 2541 2008-10-21 15:05:13Z qiang.xue $ * @package System.Web.UI.WebControls */ /** * TWebControlDecorator class - * + * * A TWebControlDecorator can be applied to a {@link TWebControl} to customize its rendering. - * TWebControlDecorator can add custom html code before and after both the open and close + * TWebControlDecorator can add custom html code before and after both the open and close * tag of a {@link TWebControl}. * The html code can be an user-defined text or an external template file that will be * instantiated and rendered in place. - * - * This is an easy way to have your look and feel depend upon the theme instead of writing + * + * This is an easy way to have your look and feel depend upon the theme instead of writing * specific html in your templates to achieve your website desires. * Here is an example of how to code your theme skin: * <code> @@ -51,40 +50,39 @@ * * * @author Brad Anderson <javalizard@gmail.com> - * @version $Id: TWebControlDecorator.php 2541 2008-10-21 15:05:13Z qiang.xue $ * @package System.Web.UI.WebControls * @since 3.2 */ class TWebControlDecorator extends TComponent { - + /** * @var boolean tells if there should only be decoration around the inner content */ private $_internalonly; - + /** * @var boolean tells if the decoration uses state in its templates. If there are no templates - * in the instance of the decoration this variable is unused. + * in the instance of the decoration this variable is unused. */ private $_usestate = false; - + /** * @var TWebControl the control to decorate */ private $_control; - + /** * @var TControl to tell the decorator where to place the outer controls */ private $_outercontrol; - + /** - * @var boolean This tells if the Templates have been + * @var boolean This tells if the Templates have been */ private $_addedTemplateDecoration=false; - - + + /** * @var string the text that goes before the open tag */ @@ -101,9 +99,9 @@ class TWebControlDecorator extends TComponent { * @var string the text that goes after the close tag */ private $_posttagtext = ''; - - - + + + /** * @var TTemplate the template that goes before the open tag */ @@ -120,7 +118,7 @@ class TWebControlDecorator extends TComponent { * @var TTemplate the template that goes after the close tag */ private $_posttagtemplate; - + /** * Constructor. * Initializes the control . @@ -131,7 +129,7 @@ class TWebControlDecorator extends TComponent { $this->_control = $control; $this->_internalonly = $onlyinternal; } - + /** * @return boolean if the templates in this decoration need state. This defaults to false */ @@ -139,23 +137,23 @@ class TWebControlDecorator extends TComponent { { return $this->_usestate; } - + /** - * @param boolean $value true to tell the decoration that the templates need state and should be + * @param boolean $value true to tell the decoration that the templates need state and should be * placed in a control step before the state is saved. */ public function setUseState($value) { $this->_usestate = TPropertyValue::ensureBoolean($value); } - + /** * @return string gets the text before the open tag in the TWebControl */ public function getPreTagText() { return $this->_pretagtext; } - + /** * @param string sets the text before the open tag in the TWebControl */ @@ -163,15 +161,15 @@ class TWebControlDecorator extends TComponent { if(!$this->_internalonly && !$this->_control->getIsSkinApplied()) $this->_pretagtext = TPropertyValue::ensureString($value); } - - + + /** * @return string the text after the open tag in the TWebControl */ public function getPreContentsText() { return $this->_precontentstext; } - + /** * @param string sets the text after the open tag in the TWebControl */ @@ -179,15 +177,15 @@ class TWebControlDecorator extends TComponent { if(!$this->_control->getIsSkinApplied()) $this->_precontentstext = TPropertyValue::ensureString($value); } - - + + /** * @return string the text before the close tag in the TWebControl */ public function getPostContentsText() { return $this->_postcontentstext; } - + /** * @param string sets the text before the close tag in the TWebControl */ @@ -195,15 +193,15 @@ class TWebControlDecorator extends TComponent { if(!$this->_control->getIsSkinApplied()) $this->_postcontentstext = TPropertyValue::ensureString($value); } - - + + /** * @return string the text before the close tag in the TWebControl */ public function getPostTagText() { return $this->_posttagtext; } - + /** * @param string sets the text after the close tag in the TWebControl */ @@ -211,15 +209,15 @@ class TWebControlDecorator extends TComponent { if(!$this->_internalonly && !$this->_control->getIsSkinApplied()) $this->_posttagtext = TPropertyValue::ensureString($value); } - - + + /** * @return TTemplate|null the template before the open tag in the TWebControl. Defaults to null. */ public function getPreTagTemplate() { return $this->_pretagtemplate; } - + /** * @param TTemplate sets the template before the open tag in the TWebControl */ @@ -227,15 +225,15 @@ class TWebControlDecorator extends TComponent { if(!$this->_internalonly && !$this->_control->getIsSkinApplied()) $this->_pretagtemplate = $value; } - - + + /** * @return TTemplate|null the template after the open tag in the TWebControl. Defaults to null. */ public function getPreContentsTemplate() { return $this->_precontentstemplate; } - + /** * @param TTemplate sets the template after the open tag in the TWebControl */ @@ -243,15 +241,15 @@ class TWebControlDecorator extends TComponent { if(!$this->_control->getIsSkinApplied()) $this->_precontentstemplate = $value; } - - + + /** * @return TTemplate|null the template before the close tag in the TWebControl. Defaults to null. */ public function getPostContentsTemplate() { return $this->_postcontentstemplate; } - + /** * @param TTemplate sets the template before the close tag in the TWebControl */ @@ -259,15 +257,15 @@ class TWebControlDecorator extends TComponent { if(!$this->_control->getIsSkinApplied()) $this->_postcontentstemplate = $value; } - - + + /** * @return TTemplate|null the template after the close tag in the TWebControl. Defaults to null. */ public function getPostTagTemplate() { return $this->_posttagtemplate; } - + /** * @param TTemplate sets the template before the close tag in the TWebControl */ @@ -275,17 +273,17 @@ class TWebControlDecorator extends TComponent { if(!$this->_internalonly && !$this->_control->getIsSkinApplied()) $this->_posttagtemplate = $value; } - + /** - * this is a framework call. The Text decoration can't + * this is a framework call. The Text decoration can't * influence the object hierarchy because they are rendered into into the writer directly. - * This call attaches the ensureTemplateDecoration to the TPage onSaveStateComplete so + * This call attaches the ensureTemplateDecoration to the TPage onSaveStateComplete so * these controls don't have page states. This is as close to not influencing the page as possible. */ public function instantiate($outercontrol = null) { - if($this->getPreTagTemplate() || $this->getPreContentsTemplate() || + if($this->getPreTagTemplate() || $this->getPreContentsTemplate() || $this->getPostContentsTemplate() || $this->getPostTagTemplate()) { - + $this->_outercontrol = $outercontrol; if($this->getUseState()) $this->ensureTemplateDecoration(); @@ -293,53 +291,53 @@ class TWebControlDecorator extends TComponent { $this->_control->getPage()->onSaveStateComplete[] = array($this, 'ensureTemplateDecoration'); } } - - + + /** * This method places the templates around the open and close tag. This takes a parameter which is * to specify the control to get the outer template decoration. If no outer control is specified - * @param TComponent this indicates the component or control to get the outer tag elements, just in case it's + * @param TComponent this indicates the component or control to get the outer tag elements, just in case it's * different than attached TWebControl. If none is provided, the outer templates default to the attached * control * @return boolean returns true if the template decorations have been added */ public function ensureTemplateDecoration($sender=null, $param=null) { - + $control = $this->_control; $outercontrol = $this->_outercontrol; if($outercontrol === null) $outercontrol = $control; - + if($this->_addedTemplateDecoration) return $this->_addedTemplateDecoration; - + $this->_addedTemplateDecoration = true; - + if($this->getPreContentsTemplate()) { $precontents = Prado::createComponent('TCompositeControl'); $this->getPreContentsTemplate()->instantiateIn($precontents); $control->getControls()->insertAt(0, $precontents); } - + if($this->getPostContentsTemplate()) { $postcontents = Prado::createComponent('TCompositeControl'); $this->getPostContentsTemplate()->instantiateIn($postcontents); $control->getControls()->add($postcontents); } - + if(!$outercontrol->getParent()) return $this->_addedTemplateDecoration; - - + + if($this->getPreTagTemplate()) { $pretag = Prado::createComponent('TCompositeControl'); $this->getPreTagTemplate()->instantiateIn($pretag); $outercontrol->getParent()->getControls()->insertBefore($outercontrol, $pretag); } - + if($this->getPostTagTemplate()) { $posttag = Prado::createComponent('TCompositeControl'); @@ -348,8 +346,8 @@ class TWebControlDecorator extends TComponent { } return true; } - - + + /** * This method places the pre tag text into the {@link TTextWriter} * @param {@link TTextWriter} the writer to which the text is written @@ -357,7 +355,7 @@ class TWebControlDecorator extends TComponent { public function renderPreTagText($writer) { $writer->write($this->getPreTagText()); } - + /** * This method places the pre contents text into the {@link TTextWriter} * @param {@link TTextWriter} the writer to which the text is written @@ -365,7 +363,7 @@ class TWebControlDecorator extends TComponent { public function renderPreContentsText($writer) { $writer->write($this->getPreContentsText()); } - + /** * This method places the post contents text into the {@link TTextWriter} * @param {@link TTextWriter} the writer to which the text is written @@ -373,7 +371,7 @@ class TWebControlDecorator extends TComponent { public function renderPostContentsText($writer) { $writer->write($this->getPostContentsText()); } - + /** * This method places the post tag text into the {@link TTextWriter} * @param {@link TTextWriter} the writer to which the text is written |