comparison Lib/IMPL/Web/View/TTFactory.pm @ 191:78a18a2b6266

IMPL::Web::View improvements (unstable)
author cin
date Thu, 05 Apr 2012 17:51:51 +0400
parents 6c0fee769b0c
children a9faf883cdce
comparison
equal deleted inserted replaced
190:cd1ff7029a63 191:78a18a2b6266
29 $this->template($template); 29 $this->template($template);
30 $this->context($context || new Template::Context($options)); 30 $this->context($context || new Template::Context($options));
31 $this->opts($options || {}); 31 $this->opts($options || {});
32 $this->nodeProperties($nodeProps || {}); 32 $this->nodeProperties($nodeProps || {});
33 $this->instances(0); 33 $this->instances(0);
34
35 # init factory context
36 $this->context->process($this->template);
37 } 34 }
38 35
39 our %CTOR = ( 36 our %CTOR = (
40 'IMPL::Object::Factory' => sub { 37 'IMPL::Object::Factory' => sub {
41 $_[0] 38 $_[0]
63 if (my $init = $this->template->blocks->{INIT}) { 60 if (my $init = $this->template->blocks->{INIT}) {
64 $this->context->process($init); 61 $this->context->process($init);
65 } 62 }
66 } 63 }
67 64
65 my $instance = $this->SUPER::CreateObject(@_);
66
67 $instance->InitInstance();
68
68 $count++; 69 $count++;
69 $this->instances($count); 70 $this->instances($count);
70 71
71 return $this->SUPER::CreateObject(@_); 72 return $instance;
72 } 73 }
73 74
74 sub save { 75 sub save {
75 die new IMPL::NotImplementedException("This class doesn't support serialization"); 76 die new IMPL::NotImplementedException("This class doesn't support serialization");
76 } 77 }
170 =item C<[override]CreateObject(@params)> 171 =item C<[override]CreateObject(@params)>
171 172
172 Создает экземпляр элемента управления стандартным образом. Учитывает количество экземпляров и если это первый, 173 Создает экземпляр элемента управления стандартным образом. Учитывает количество экземпляров и если это первый,
173 то производит дополнительную инициализацию контекста выполнив блок шаблона C<INIT>. 174 то производит дополнительную инициализацию контекста выполнив блок шаблона C<INIT>.
174 175
175 =item C<new($name,$nodeProps)> 176 =item C<[inherited]new($name,$nodeProps)>
176 177
177 Создает элемент управления с указанным именем и набором свойств. 178 Создает элемент управления с указанным именем и набором свойств.
178 179
179 =back 180 =back
180 181