diff 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
line wrap: on
line diff
--- a/Lib/IMPL/Web/View/TTControl.pm	Wed Jan 09 17:55:43 2013 +0400
+++ b/Lib/IMPL/Web/View/TTControl.pm	Thu Jan 10 03:25:02 2013 +0400
@@ -142,39 +142,113 @@
 
 =head1 SYNPOSIS
 
+=begin text
+
+[%
+    META version = 1;
+    BLOCK INIT;
+        # this is a document scope
+        dojo.require.push( 'dijit/form/Input' );
+    END;
+    BLOCK CTOR;
+        # local to this block
+        TPreview = require('My/Org/TextPreview');
+        
+        # init control props 
+        this.dojoClass = this.dojoClass || 'dijit.form.Input';
+        this.visualClass = this.visualClass || 'classic';
+        this.childNodes = [];
+        
+        # init content
+        FOREACH text IN this.data;
+            this.childNodes.push( TPreview.new('preview', nodeValue = text ) );
+        END;
+        
+    END;
+%]
+
+<div class="$this.visualClass" data-dojo-type="$this.dojoClass">
+    [% FOREACH node IN this.childNodes %]
+        [% node.Render() %]
+        <hr />
+    [% END %]
+</div>
+
+=end text
+
 =head1 DESCRIPTION
 
+Представляет собой фрагмент документа, который имеет шаблон для отображения,
+набор свойств и т.п.
+
 =head2 BLOCKS
 
+=head3 META
+
+Атрибуты C<META> C<layout>, C<title> будут перенесены в свойства элемента
+управления. 
+
 =head3 INIT
 
-Данный блок шаблона управления выполняется один раз при создании первого экземпляра элемента управления,
-может использоваться для формирования заголовочной части документа, скрипта подключающего ajax модули
-при необходимости и т.п.
+Данный блок шаблона управления выполняется один раз при создании первого
+экземпляра элемента управления, в пространстве имен документа. Может
+использоваться для формирования заголовочной части документа, скрипта
+подключающего C<js> модули и т.п.
+
+Выполнение данного блока производится фабрикой элементов управления.
 
 =head3 CTOR
 
-данный блок выполняется каждый раз при создании нового экземпляра элемента управления, при этом переменная C<this>
-указывает на эземпляр элемента упарвления. Данный блок можно использовать для инициализации свойств элемента
+данный блок выполняется каждый раз при создании нового экземпляра элемента
+управления, при этом переменная C<this> указывает на эземпляр элемента
+упарвления. Данный блок можно использовать для инициализации свойств элемента
 управления.
 
 =head3 RENDER
 
-Данный блок выполняется при вызове метода C<Render()>, вывод данного блока и есть результат отображения элемента управления.
-Если в шаблоне нет блока C<RENDER>, то сам шаблон считается таковым. 
+Данный блок выполняется при вызове метода C<Render()>, вывод данного блока и
+есть результат отображения элемента управления. Если в шаблоне нет блока
+C<RENDER>, то сам шаблон считается таковым. 
 
 =head2 TEMPLATE VARS
 
-Каждый шаблон имеет собственное пространство имен, унаследованное от пространства имен фабрики элементов (которая в свою очередь наследует контекст документа).
-В шаблоне могут определяться новые переменные, которые разделяются между блоками. Также доступны стандартные переменные
+Каждый шаблон имеет собственное пространство имен, вложенное в пространство имен
+фабрики элементов (которая разделяет пространство имен документа). В шаблоне
+могут определяться новые переменные, однако они останутся локальными для блоков.
+
+Чтобы передать данные между блоками следует использовать ссылку на элемент
+управления C<this>.
+
+=begin text
+
+[%
+    BLOCK CTOR;
+        this.extraCssClass = 'active';
+        text = "this text will gone";
+    END;
+%]
+
+<div class="$this.extraCssClass">some text $text</div>
+
+=end text
+
+В примере выше переменная C<$text> установленная в конструкторе шаблона, при
+отображении элемента управления будет неопределена.
 
 =over
 
-=item * C<this> ссылка на объект элемента управления
+=item * C<this>
+
+ссылка на объект элемента управления
+
+=item * C<component>
 
-=item * C<component> ссылка на текущий шаблон, устанавливается автоматически в методе C<Template::Context::process>.
+ссылка на текущий шаблон, устанавливается автоматически в методе
+C<Template::Context::process>.
 
-=item * C<template> ссылка на шаблон элемента управления, для совместимости с C<TT>
+=item * C<template>
+
+ссылка на шаблон элемента управления, для совместимости с C<TT>
 
 =back
 
@@ -184,8 +258,9 @@
 
 =item * C<[get]context>
 
-Контекст элемента управления, хранит пременные шаблона. Наследуется от контекста фабрики элементов управления, который
-наследуется от контекста документа.
+Контекст элемента управления, хранит пременные шаблона. Передается в
+конструкторе. Фабрика элементов управления создает новый контекст пространство
+имен которого вложено в пространство имен документа.
 
 =item * C<[get,set]template>
 
@@ -193,11 +268,10 @@
 
 =item * C<AUTOLOAD>
 
-Для удобства работы с шаблоном, элементы управления предоставляю доступ к своим свойствам через метод C<AUTOLOAD>.
+Для удобства работы с шаблоном, элементы управления предоставляю доступ к своим
+свойствам через метод C<AUTOLOAD>. Имена свойств должны начинаться со строчной
+буквы.
 
 =back
 
-
-C<lang ru>
-
 =cut
\ No newline at end of file