comparison Lib/IMPL/Web/View/TTControl.pm @ 265:6b6d4b2275a1

improved documentation
author cin
date Thu, 10 Jan 2013 03:25:02 +0400
parents f48a1a9f4fa2
children bbc0da7ef90e
comparison
equal deleted inserted replaced
264:c9c2ec29793f 265:6b6d4b2275a1
140 140
141 C<IMPL::Web::View::TTControl> 141 C<IMPL::Web::View::TTControl>
142 142
143 =head1 SYNPOSIS 143 =head1 SYNPOSIS
144 144
145 =begin text
146
147 [%
148 META version = 1;
149 BLOCK INIT;
150 # this is a document scope
151 dojo.require.push( 'dijit/form/Input' );
152 END;
153 BLOCK CTOR;
154 # local to this block
155 TPreview = require('My/Org/TextPreview');
156
157 # init control props
158 this.dojoClass = this.dojoClass || 'dijit.form.Input';
159 this.visualClass = this.visualClass || 'classic';
160 this.childNodes = [];
161
162 # init content
163 FOREACH text IN this.data;
164 this.childNodes.push( TPreview.new('preview', nodeValue = text ) );
165 END;
166
167 END;
168 %]
169
170 <div class="$this.visualClass" data-dojo-type="$this.dojoClass">
171 [% FOREACH node IN this.childNodes %]
172 [% node.Render() %]
173 <hr />
174 [% END %]
175 </div>
176
177 =end text
178
145 =head1 DESCRIPTION 179 =head1 DESCRIPTION
146 180
181 Представляет собой фрагмент документа, который имеет шаблон для отображения,
182 набор свойств и т.п.
183
147 =head2 BLOCKS 184 =head2 BLOCKS
148 185
186 =head3 META
187
188 Атрибуты C<META> C<layout>, C<title> будут перенесены в свойства элемента
189 управления.
190
149 =head3 INIT 191 =head3 INIT
150 192
151 Данный блок шаблона управления выполняется один раз при создании первого экземпляра элемента управления, 193 Данный блок шаблона управления выполняется один раз при создании первого
152 может использоваться для формирования заголовочной части документа, скрипта подключающего ajax модули 194 экземпляра элемента управления, в пространстве имен документа. Может
153 при необходимости и т.п. 195 использоваться для формирования заголовочной части документа, скрипта
196 подключающего C<js> модули и т.п.
197
198 Выполнение данного блока производится фабрикой элементов управления.
154 199
155 =head3 CTOR 200 =head3 CTOR
156 201
157 данный блок выполняется каждый раз при создании нового экземпляра элемента управления, при этом переменная C<this> 202 данный блок выполняется каждый раз при создании нового экземпляра элемента
158 указывает на эземпляр элемента упарвления. Данный блок можно использовать для инициализации свойств элемента 203 управления, при этом переменная C<this> указывает на эземпляр элемента
204 упарвления. Данный блок можно использовать для инициализации свойств элемента
159 управления. 205 управления.
160 206
161 =head3 RENDER 207 =head3 RENDER
162 208
163 Данный блок выполняется при вызове метода C<Render()>, вывод данного блока и есть результат отображения элемента управления. 209 Данный блок выполняется при вызове метода C<Render()>, вывод данного блока и
164 Если в шаблоне нет блока C<RENDER>, то сам шаблон считается таковым. 210 есть результат отображения элемента управления. Если в шаблоне нет блока
211 C<RENDER>, то сам шаблон считается таковым.
165 212
166 =head2 TEMPLATE VARS 213 =head2 TEMPLATE VARS
167 214
168 Каждый шаблон имеет собственное пространство имен, унаследованное от пространства имен фабрики элементов (которая в свою очередь наследует контекст документа). 215 Каждый шаблон имеет собственное пространство имен, вложенное в пространство имен
169 В шаблоне могут определяться новые переменные, которые разделяются между блоками. Также доступны стандартные переменные 216 фабрики элементов (которая разделяет пространство имен документа). В шаблоне
217 могут определяться новые переменные, однако они останутся локальными для блоков.
218
219 Чтобы передать данные между блоками следует использовать ссылку на элемент
220 управления C<this>.
221
222 =begin text
223
224 [%
225 BLOCK CTOR;
226 this.extraCssClass = 'active';
227 text = "this text will gone";
228 END;
229 %]
230
231 <div class="$this.extraCssClass">some text $text</div>
232
233 =end text
234
235 В примере выше переменная C<$text> установленная в конструкторе шаблона, при
236 отображении элемента управления будет неопределена.
170 237
171 =over 238 =over
172 239
173 =item * C<this> ссылка на объект элемента управления 240 =item * C<this>
174 241
175 =item * C<component> ссылка на текущий шаблон, устанавливается автоматически в методе C<Template::Context::process>. 242 ссылка на объект элемента управления
176 243
177 =item * C<template> ссылка на шаблон элемента управления, для совместимости с C<TT> 244 =item * C<component>
245
246 ссылка на текущий шаблон, устанавливается автоматически в методе
247 C<Template::Context::process>.
248
249 =item * C<template>
250
251 ссылка на шаблон элемента управления, для совместимости с C<TT>
178 252
179 =back 253 =back
180 254
181 =head1 MEMBERS 255 =head1 MEMBERS
182 256
183 =over 257 =over
184 258
185 =item * C<[get]context> 259 =item * C<[get]context>
186 260
187 Контекст элемента управления, хранит пременные шаблона. Наследуется от контекста фабрики элементов управления, который 261 Контекст элемента управления, хранит пременные шаблона. Передается в
188 наследуется от контекста документа. 262 конструкторе. Фабрика элементов управления создает новый контекст пространство
263 имен которого вложено в пространство имен документа.
189 264
190 =item * C<[get,set]template> 265 =item * C<[get,set]template>
191 266
192 C<Template::Document> Шаблон элемента управления. 267 C<Template::Document> Шаблон элемента управления.
193 268
194 =item * C<AUTOLOAD> 269 =item * C<AUTOLOAD>
195 270
196 Для удобства работы с шаблоном, элементы управления предоставляю доступ к своим свойствам через метод C<AUTOLOAD>. 271 Для удобства работы с шаблоном, элементы управления предоставляю доступ к своим
272 свойствам через метод C<AUTOLOAD>. Имена свойств должны начинаться со строчной
273 буквы.
197 274
198 =back 275 =back
199 276
200
201 C<lang ru>
202
203 =cut 277 =cut