blob: e782c635a7d040f5260f04a853ab262774f422ef (
plain)
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
107
108
109
110
111
112
113
114
115
116
|
<?php
/**
* TWizard and the relevant class definitions.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link http://www.pradosoft.com/
* @copyright Copyright © 2005-2014 PradoSoft
* @license http://www.pradosoft.com/license/
* @package Prado\Web\UI\WebControls
*/
namespace Prado\Web\UI\WebControls;
use Prado\Web\UI\ITemplate;
/**
* TTemplatedWizardStep class.
*
* TTemplatedWizardStep represents a wizard step whose content and navigation
* can be customized using templates. To customize the step content, specify
* {@link setContentTemplate ContentTemplate}. To customize navigation specific
* to the step, specify {@link setNavigationTemplate NavigationTemplate}. Note,
* if the navigation template is not specified, default navigation will be used.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @package Prado\Web\UI\WebControls
* @since 3.0
*/
class TTemplatedWizardStep extends TWizardStep implements \Prado\Web\UI\INamingContainer
{
/**
* @var ITemplate the template for displaying the navigation UI of a wizard step.
*/
private $_navigationTemplate=null;
/**
* @var ITemplate the template for displaying the content within the wizard step.
*/
private $_contentTemplate=null;
/**
* @var TWizardNavigationContainer
*/
private $_navigationContainer=null;
/**
* Creates child controls.
* This method mainly instantiates the content template, if any.
*/
public function createChildControls()
{
$this->getControls()->clear();
if($this->_contentTemplate)
$this->_contentTemplate->instantiateIn($this);
}
/**
* Ensures child controls are created.
* @param mixed event parameter
*/
public function onInit($param)
{
parent::onInit($param);
$this->ensureChildControls();
}
/**
* @return ITemplate the template for the content of the wizard step.
*/
public function getContentTemplate()
{
return $this->_contentTemplate;
}
/**
* @param ITemplate the template for the content of the wizard step.
*/
public function setContentTemplate($value)
{
$this->_contentTemplate=$value;
}
/**
* @return ITemplate the template for displaying the navigation UI of a wizard step. Defaults to null.
*/
public function getNavigationTemplate()
{
return $this->_navigationTemplate;
}
/**
* @param ITemplate the template for displaying the navigation UI of a wizard step.
*/
public function setNavigationTemplate($value)
{
$this->_navigationTemplate=$value;
}
/**
* @return TWizardNavigationContainer the control containing the navigation.
* It could be null if no navigation template is specified.
*/
public function getNavigationContainer()
{
return $this->_navigationContainer;
}
/**
* Instantiates the navigation template if any
*/
public function instantiateNavigationTemplate()
{
if(!$this->_navigationContainer && $this->_navigationTemplate)
{
$this->_navigationContainer=new TWizardNavigationContainer;
$this->_navigationTemplate->instantiateIn($this->_navigationContainer);
}
}
}
|