comparison Lib/IMPL/Web/View/TTControl.pm @ 300:bf3af33b9003

sync
author cin
date Fri, 22 Mar 2013 01:05:11 +0400
parents bd79145657e5
children aeeb57a12046
comparison
equal deleted inserted replaced
299:bd79145657e5 300:bf3af33b9003
29 sub _GetNextId { 29 sub _GetNextId {
30 return '_' . $nextId++; 30 return '_' . $nextId++;
31 } 31 }
32 } 32 }
33 33
34 our $AutoloadRegex = qr/^[a-z]/; 34 our $AUTOLOAD_REGEX = qr/^[a-z]/;
35 35
36 sub CTOR { 36 sub CTOR {
37 my ($this,$template,$context,$attrs) = @_; 37 my ($this,$template,$context,$attrs) = @_;
38 38
39 39
94 94
95 my $method = ($AUTOLOAD =~ m/(\w+)$/)[0]; 95 my $method = ($AUTOLOAD =~ m/(\w+)$/)[0];
96 96
97 return if $method eq 'DESTROY'; 97 return if $method eq 'DESTROY';
98 98
99 if ($method =~ /$AutoloadRegex/) { 99 if ($method =~ /$AUTOLOAD_REGEX/) {
100 my $this = shift; 100 my $this = shift;
101 101
102 die OperationException->new("can't invoke method '$method' on an unblessed reference") unless blessed $this; 102 die OperationException->new("can't invoke method '$method' on an unblessed reference") unless blessed $this;
103 103
104 return @_ ? $this->SetAttribute($method,@_) : $this->GetAttribute($method); 104 return @_ ? $this->SetAttribute($method,@_) : $this->GetAttribute($method);
164 использоваться для формирования заголовочной части документа, скрипта 164 использоваться для формирования заголовочной части документа, скрипта
165 подключающего C<js> модули и т.п. 165 подключающего C<js> модули и т.п.
166 166
167 Выполнение данного блока производится фабрикой элементов управления. 167 Выполнение данного блока производится фабрикой элементов управления.
168 168
169 =head3 CTOR
170
171 данный блок выполняется каждый раз при создании нового экземпляра элемента
172 управления, при этом переменная C<this> указывает на эземпляр элемента
173 упарвления. Данный блок можно использовать для инициализации свойств элемента
174 управления.
175
176 =head3 RENDER
177
178 Данный блок выполняется при вызове метода C<Render()>, вывод данного блока и
179 есть результат отображения элемента управления. Если в шаблоне нет блока
180 C<RENDER>, то сам шаблон считается таковым.
181
182 =head2 TEMPLATE VARS 169 =head2 TEMPLATE VARS
183 170
184 Каждый шаблон имеет собственное пространство имен, вложенное в пространство имен 171 Каждый шаблон имеет собственное пространство имен, вложенное в пространство имен
185 фабрики элементов (которая разделяет пространство имен документа). В шаблоне 172 фабрики элементов (которая разделяет пространство имен документа). В шаблоне
186 могут определяться новые переменные, однако они останутся локальными для блоков. 173 могут определяться новые переменные, однако они останутся локальными для блоков.
221 208
222 =back 209 =back
223 210
224 =head1 MEMBERS 211 =head1 MEMBERS
225 212
226 =over 213 =head2 C<[get]context>
227 214
228 =item * C<[get]context> 215 Контекст элемента управления, хранит пременные шаблона. Фабрика элементов
229 216 управления создает новый контекст пространство имен которого вложено в
230 Контекст элемента управления, хранит пременные шаблона. Передается в 217 пространство имен документа.
231 конструкторе. Фабрика элементов управления создает новый контекст пространство 218
232 имен которого вложено в пространство имен документа. 219 Контекст следует использовать только при рендеринге документа.
233 220
234 =item * C<[get,set]template> 221 =head2 C<[get,set]template>
235 222
236 C<Template::Document> Шаблон элемента управления. 223 C<Template::Document> Шаблон элемента управления.
237 224
238 =item * C<AUTOLOAD> 225 =head2 C<AUTOLOAD>
239 226
240 Для удобства работы с шаблоном, элементы управления предоставляю доступ к своим 227 Для удобства работы с шаблоном, элементы управления предоставляю доступ к своим
241 свойствам через метод C<AUTOLOAD>. Имена свойств должны начинаться со строчной 228 свойствам через метод C<AUTOLOAD>. Имена свойств должны начинаться со строчной
242 буквы. 229 буквы.
243 230
244 =back
245
246 =cut 231 =cut