1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
<?php
/**
* TLabel class file.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link http://www.xisc.com/
* @copyright Copyright © 2004-2005, Qiang Xue
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
* @version $Revision: $ $Date: $
* @package System.Web.UI.WebControls
*/
/**
* TLabel class
*
* TLabel represents a label control that displays text on a Web pagge.
* Use <b>Text</b> property to set the text to be displayed.
* TLabel will render the contents enclosed within its component tag
* if <b>Text</b> is empty.
* To use TLabel as a form label, associate it with a control by setting the
* <b>AssociateControlID</b> property. The associated control must be locatable
* within the label's naming container.
*
* Note, <b>Text</b> will NOT be encoded for rendering.
* Make usre it does not contain dangerous characters that you want to avoid.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @version $Revision: $ $Date: $
* @package System.Web.UI.WebControls
* @since 3.0
*/
class TLabel extends TWebControl
{
/**
* @return string tag name of the label, returns 'label' if there is an associated control, 'span' otherwise.
*/
protected function getTagName()
{
return ($this->getAssociatedControlID()==='')?'span':'label';
}
/**
* Adds attributes to renderer.
* @param THtmlTextWriter the renderer
* @throws TInvalidDataValueException if associated control cannot be found using the ID
*/
protected function addAttributesToRender($writer)
{
if(($aid=$this->getAssociatedControlID())!=='')
{
if($control=$this->findControl($aid))
$writer->addAttribute('for',$control->getClientID());
else
throw new TInvalidDataValueException('control_not_found',$aid);
}
parent::addAttributesToRender($writer);
}
/**
* Renders the body content of the label.
* @param THtmlTextWriter the renderer
*/
protected function renderContents($writer)
{
if(($text=$this->getText())==='')
parent::renderContents($writer);
else
$writer->write($text);
}
/**
* @return string the text value of the label
*/
public function getText()
{
return $this->getViewState('Text','');
}
/**
* @param string the text value of the label
*/
public function setText($value)
{
$this->setViewState('Text',$value,'');
}
/**
* @return string the associated control ID
*/
public function getAssociatedControlID()
{
return $this->getViewState('AssociatedControlID','');
}
/**
* Sets the ID of the control that the label is associated with.
* The control must be locatable via {@link TControl::findControl} using the ID.
* @param string the associated control ID
*/
public function setAssociatedControlID($value)
{
$this->setViewState('AssociatedControlID',$value,'');
}
}
?>
|