From 112d86bb08a1dd4bde14005f757c95b0fc7a5a21 Mon Sep 17 00:00:00 2001 From: xue <> Date: Sun, 4 Jun 2006 20:51:27 +0000 Subject: Merge from 3.0 branch till 1140. --- framework/Web/UI/WebControls/TTextProcessor.php | 87 +++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 framework/Web/UI/WebControls/TTextProcessor.php (limited to 'framework/Web/UI/WebControls/TTextProcessor.php') diff --git a/framework/Web/UI/WebControls/TTextProcessor.php b/framework/Web/UI/WebControls/TTextProcessor.php new file mode 100644 index 00000000..4c4c68f2 --- /dev/null +++ b/framework/Web/UI/WebControls/TTextProcessor.php @@ -0,0 +1,87 @@ + + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2005 Wei Zhuo + * @license http://www.pradosoft.com/license/ + * @version $Revision: $ $Date: $ + * @package System.Web.UI.WebControls + */ + +/** + * TTextProcessor class. + * + * TTextProcessor is the base class for classes that process or transform + * text content into different forms. The text content to be processed + * is specified by {@link setText Text} property. If it is not set, the body + * content enclosed within the processor control will be processed and rendered. + * The body content includes static text strings and the rendering result + * of child controls. + * + * Note, all child classes must implement {@link processText} method. + * + * @author Qiang Xue + * @version $Revision: $ $Date: $ + * @package System.Web.UI + * @since 3.0.1 + */ +abstract class TTextProcessor extends TWebControl +{ + /** + * Processes a text string. + * This method must be implemented by child classes. + * @param string text string to be processed + * @return string the processed text result + */ + abstract public function processText($text); + + /** + * HTML-decodes static text. + * This method overrides parent implementation. + * @param mixed object to be added as body content + */ + public function addParsedObject($object) + { + if(is_string($object)) + $object=html_entity_decode($object,ENT_QUOTES,'UTF-8'); + parent::addParsedObject($object); + } + + /** + * @return string text to be processed + */ + public function getText() + { + return $this->getViewState('Text',''); + } + + /** + * @param string text to be processed + */ + public function setText($value) + { + $this->setViewState('Text',$value); + } + + /** + * Renders body content. + * This method overrides the parent implementation by replacing + * the body content with the processed text content. + * @param THtmlWriter writer + */ + public function renderContents($writer) + { + if(($text=$this->getText())==='' && $this->getHasControls()) + { + $textWriter=new TTextWriter; + parent::renderContents(new THtmlWriter($textWriter)); + $text=$textWriter->flush(); + } + if($text!=='') + $writer->write($this->processText($text)); + } + +} +?> \ No newline at end of file -- cgit v1.2.3