Mercurial > pub > Impl
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 |