diff options
Diffstat (limited to 'framework/Web/UI/WebControls/TConditional.php')
| -rw-r--r-- | framework/Web/UI/WebControls/TConditional.php | 284 | 
1 files changed, 142 insertions, 142 deletions
diff --git a/framework/Web/UI/WebControls/TConditional.php b/framework/Web/UI/WebControls/TConditional.php index d04324f0..28af2305 100644 --- a/framework/Web/UI/WebControls/TConditional.php +++ b/framework/Web/UI/WebControls/TConditional.php @@ -1,143 +1,143 @@ -<?php
 -/**
 - * TConditional class file.
 - *
 - * @author Qiang Xue <qiang.xue@gmail.com>
 - * @link http://www.pradosoft.com/
 +<?php +/** + * TConditional class file. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @link http://www.pradosoft.com/   * @copyright Copyright © 2005-2012 PradoSoft - * @license http://www.pradosoft.com/license/
 - * @version $Id$
 - * @package System.Web.UI.WebControls
 - */
 -
 -/**
 - * TConditional class.
 - *
 - * TConditional displays appropriate content based on the evaluation result
 - * of a PHP expression specified via {@link setCondition Condition}.
 - * If the result is true, it instantiates the template {@link getTrueTemplate TrueTemplate};
 - * otherwise, the template {@link getFalseTemplate FalseTemplate} is instantiated.
 - * The PHP expression is evaluated right before {@link onInit} stage of the control lifecycle.
 - *
 - * Since {@link setCondition Condition} is evaluated at a very early stage, it is recommended
 - * you set {@link setCondition Condition} in template and the expression should not refer to
 - * objects that are available on or after {@link onInit} lifecycle.
 - *
 - * A typical usage of TConditional is shown as following:
 - * <code>
 - * <com:TConditional Condition="$this->User->IsGuest">
 - *   <prop:TrueTemplate>
 - *     <a href="path/to/login">Login</a>
 - *   </prop:TrueTemplate>
 - *   <prop:FalseTemplate>
 - *     <a href="path/to/logout">Logout</a>
 - *   </prop:FalseTemplate>
 - * </com:TConditional>
 - * </code>
 - *
 - * TConditional is very light. It instantiates either {@link getTrueTemplate TrueTemplate}
 - * or {@link getFalseTemplate FalseTemplate}, but never both. And the condition is evaluated only once.
 - *
 - * @author Qiang Xue <qiang.xue@gmail.com>
 - * @version $Id$
 - * @package System.Web.UI.WebControls
 - * @since 3.1.1
 - */
 -class TConditional extends TControl
 -{
 -	private $_condition='true';
 -	private $_trueTemplate;
 -	private $_falseTemplate;
 -	private $_creatingChildren=false;
 -
 -	/**
 -	 * Processes an object that is created during parsing template.
 -	 * This method overrides the parent implementation by removing
 -	 * all contents enclosed in the template tag.
 -	 * @param string|TComponent text string or component parsed and instantiated in template
 -	 * @see createdOnTemplate
 -	 */
 -	public function addParsedObject($object)
 -	{
 -		if($this->_creatingChildren)
 -			parent::addParsedObject($object);
 -	}
 -
 -	/**
 -	 * Creates child controls.
 -	 * This method overrides the parent implementation. It evaluates {@link getCondition Condition}
 -	 * and instantiate the corresponding template.
 -	 */
 -	public function createChildControls()
 -	{
 -		$this->_creatingChildren=true;
 -		$result=true;
 -		try
 -		{
 -			$result=$this->getTemplateControl()->evaluateExpression($this->_condition);
 -		}
 -		catch(Exception $e)
 -		{
 -			throw new TInvalidDataValueException('conditional_condition_invalid',$this->_condition,$e->getMessage());
 -		}
 -		if($result)
 -		{
 -			if($this->_trueTemplate)
 -				$this->_trueTemplate->instantiateIn($this->getTemplateControl(),$this);
 -		}
 -		else if($this->_falseTemplate)
 -			$this->_falseTemplate->instantiateIn($this->getTemplateControl(),$this);
 -		$this->_creatingChildren=false;
 -	}
 -
 -	/**
 -	 * @return string the PHP expression used for determining which template to use. Defaults to 'true', meaning using TrueTemplate.
 -	 */
 -	public function getCondition()
 -	{
 -		return $this->_condition;
 -	}
 -
 -	/**
 -	 * Sets the PHP expression to be evaluated for conditionally displaying content.
 -	 * The context of the expression is the template control containing TConditional.
 -	 * @param string the PHP expression used for determining which template to use.
 -	 */
 -	public function setCondition($value)
 -	{
 -		$this->_condition=TPropertyValue::ensureString($value);
 -	}
 -
 -	/**
 -	 * @return ITemplate the template applied when {@link getCondition Condition} is true.
 -	 */
 -	public function getTrueTemplate()
 -	{
 -		return $this->_trueTemplate;
 -	}
 -
 -	/**
 -	 * @param ITemplate the template applied when {@link getCondition Condition} is true.
 -	 */
 -	public function setTrueTemplate(ITemplate $value)
 -	{
 -		$this->_trueTemplate=$value;
 -	}
 -
 -	/**
 -	 * @return ITemplate the template applied when {@link getCondition Condition} is false.
 -	 */
 -	public function getFalseTemplate()
 -	{
 -		return $this->_falseTemplate;
 -	}
 -
 -	/**
 -	 * @param ITemplate the template applied when {@link getCondition Condition} is false.
 -	 */
 -	public function setFalseTemplate(ITemplate $value)
 -	{
 -		$this->_falseTemplate=$value;
 -	}
 -}
 -
 + * @license http://www.pradosoft.com/license/ + * @version $Id$ + * @package System.Web.UI.WebControls + */ + +/** + * TConditional class. + * + * TConditional displays appropriate content based on the evaluation result + * of a PHP expression specified via {@link setCondition Condition}. + * If the result is true, it instantiates the template {@link getTrueTemplate TrueTemplate}; + * otherwise, the template {@link getFalseTemplate FalseTemplate} is instantiated. + * The PHP expression is evaluated right before {@link onInit} stage of the control lifecycle. + * + * Since {@link setCondition Condition} is evaluated at a very early stage, it is recommended + * you set {@link setCondition Condition} in template and the expression should not refer to + * objects that are available on or after {@link onInit} lifecycle. + * + * A typical usage of TConditional is shown as following: + * <code> + * <com:TConditional Condition="$this->User->IsGuest"> + *   <prop:TrueTemplate> + *     <a href="path/to/login">Login</a> + *   </prop:TrueTemplate> + *   <prop:FalseTemplate> + *     <a href="path/to/logout">Logout</a> + *   </prop:FalseTemplate> + * </com:TConditional> + * </code> + * + * TConditional is very light. It instantiates either {@link getTrueTemplate TrueTemplate} + * or {@link getFalseTemplate FalseTemplate}, but never both. And the condition is evaluated only once. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @version $Id$ + * @package System.Web.UI.WebControls + * @since 3.1.1 + */ +class TConditional extends TControl +{ +	private $_condition='true'; +	private $_trueTemplate; +	private $_falseTemplate; +	private $_creatingChildren=false; + +	/** +	 * Processes an object that is created during parsing template. +	 * This method overrides the parent implementation by removing +	 * all contents enclosed in the template tag. +	 * @param string|TComponent text string or component parsed and instantiated in template +	 * @see createdOnTemplate +	 */ +	public function addParsedObject($object) +	{ +		if($this->_creatingChildren) +			parent::addParsedObject($object); +	} + +	/** +	 * Creates child controls. +	 * This method overrides the parent implementation. It evaluates {@link getCondition Condition} +	 * and instantiate the corresponding template. +	 */ +	public function createChildControls() +	{ +		$this->_creatingChildren=true; +		$result=true; +		try +		{ +			$result=$this->getTemplateControl()->evaluateExpression($this->_condition); +		} +		catch(Exception $e) +		{ +			throw new TInvalidDataValueException('conditional_condition_invalid',$this->_condition,$e->getMessage()); +		} +		if($result) +		{ +			if($this->_trueTemplate) +				$this->_trueTemplate->instantiateIn($this->getTemplateControl(),$this); +		} +		else if($this->_falseTemplate) +			$this->_falseTemplate->instantiateIn($this->getTemplateControl(),$this); +		$this->_creatingChildren=false; +	} + +	/** +	 * @return string the PHP expression used for determining which template to use. Defaults to 'true', meaning using TrueTemplate. +	 */ +	public function getCondition() +	{ +		return $this->_condition; +	} + +	/** +	 * Sets the PHP expression to be evaluated for conditionally displaying content. +	 * The context of the expression is the template control containing TConditional. +	 * @param string the PHP expression used for determining which template to use. +	 */ +	public function setCondition($value) +	{ +		$this->_condition=TPropertyValue::ensureString($value); +	} + +	/** +	 * @return ITemplate the template applied when {@link getCondition Condition} is true. +	 */ +	public function getTrueTemplate() +	{ +		return $this->_trueTemplate; +	} + +	/** +	 * @param ITemplate the template applied when {@link getCondition Condition} is true. +	 */ +	public function setTrueTemplate(ITemplate $value) +	{ +		$this->_trueTemplate=$value; +	} + +	/** +	 * @return ITemplate the template applied when {@link getCondition Condition} is false. +	 */ +	public function getFalseTemplate() +	{ +		return $this->_falseTemplate; +	} + +	/** +	 * @param ITemplate the template applied when {@link getCondition Condition} is false. +	 */ +	public function setFalseTemplate(ITemplate $value) +	{ +		$this->_falseTemplate=$value; +	} +} +  | 
