changeset 308:47a09a8dc23a

sync
author sergey
date Thu, 18 Apr 2013 20:06:05 +0400
parents 2da2564f115d
children 5e4e7c8fbca1
files Lib/IMPL/Web/View/TTDocument.pm Lib/IMPL/Web/View/TTLoader.pm _test/dump.out
diffstat 3 files changed, 236 insertions(+), 125 deletions(-) [+]
line wrap: on
line diff
--- a/Lib/IMPL/Web/View/TTDocument.pm	Thu Apr 18 02:21:28 2013 +0400
+++ b/Lib/IMPL/Web/View/TTDocument.pm	Thu Apr 18 20:06:05 2013 +0400
@@ -23,15 +23,13 @@
     ],
     props => [
         layout => PROP_RW,
-        loader => PROP_RW,
         baseLocation => PROP_RW
     ]
 };
 
 sub CTOR {
-    my ($this,$template,$ctx,$loader,$vars) = @_;
+    my ($this,$template,$ctx,$vars) = @_;
     
-    $this->loader($loader) if $loader;
     $this->layout( $template->layout ) unless $this->layout;
     $this->title( $template->title ) unless $this->title;
     
@@ -46,18 +44,15 @@
     
     $this->context->localise(); # localise stash
     my $documentContext = _clone_context( $this->context ); # create a new context
-    
-    my $registry = TTRegistry->new($this->loader, $documentContext);
 
     $this->context->stash->update({
-    	require => sub { $registry->Require(shift) },
     	document => sub { $this }
     });
     
     my $text = eval {
     
         if ($this->layout) {
-        	my $tlayout = $this->loader->layout($this->layout);
+        	my $tlayout = $this->GetTemplate($this->layout);
         	if(my $init = $tlayout->blocks->{INIT}) {
         		$this->context->process(
                     $init,
@@ -86,8 +81,6 @@
     
     my $e = $@;
 
-    $registry->Dispose();
-    undef $registry;    
     $this->context->delocalise();
     
     undef $this;
@@ -105,6 +98,12 @@
     $this->template->blocks->{$name};
 }
 
+sub DTOR {
+	my $this = shift;
+	
+	$this->registry->Dispose() if $this->registry;
+}
+
 sub _clone_context {
     my $args = { %{shift || {}} };
     delete $args->{CONFIG};
--- a/Lib/IMPL/Web/View/TTLoader.pm	Thu Apr 18 02:21:28 2013 +0400
+++ b/Lib/IMPL/Web/View/TTLoader.pm	Thu Apr 18 20:06:05 2013 +0400
@@ -8,7 +8,7 @@
     require => {
         Provider => 'Template::Provider',
         Context => 'Template::Context',
-        TTDocument => 'IMPL::Web::View::TTDocument',
+        TTFactory => 'IMPL::Web::View::TTFactory',
         Exception => 'IMPL::Exception',
         ArgumentException => '-IMPL::InvalidArgumentException',
         KeyNotFoundException => '-IMPL::KeyNotFoundException'
@@ -71,6 +71,8 @@
 sub document {
     my ($this,$name,$vars) = @_;
     
+    $vars ||= $vars;
+    
     my $tt = $this->template($name);
         
     $this->_init();
@@ -81,9 +83,12 @@
     my $ctx = _clone_context($this->context);
     $this->context->delocalise();
     
-    return TTDocument->new( $tt, $ctx, $this, $vars );
+    my $factory = TTFactory->new($tt,$ctx,$name,TTRegistry->new($this, $ctx));
+    
+    return $factory->new( $vars );
 }
 
+
 sub template {
     my ($this,$name) = @_;
     
--- a/_test/dump.out	Thu Apr 18 02:21:28 2013 +0400
+++ b/_test/dump.out	Thu Apr 18 20:06:05 2013 +0400
@@ -37,46 +37,11 @@
                                        }, 'Template::Stash::XS' )
                  }, 'Template::Stash::XS' ),
           bless( {
-                   'require' => sub { "DUMMY" },
-                   'date' => $VAR1->[0]{'date'},
-                   'inc' => $VAR1->[0]{'inc'},
-                   'document' => sub { "DUMMY" },
-                   'dec' => $VAR1->[0]{'dec'},
-                   'dojoDefaultClass' => 'dijit.form.Input',
-                   'dojo' => {
-                               'require' => [
-                                              'dijit.form.Input'
-                                            ]
-                             },
-                   'view' => $VAR1->[0]{'view'},
-                   'user' => 'test_user',
-                   '_PARENT' => $VAR1->[0],
-                   'global' => $VAR1->[0]{'global'},
-                   'template' => bless( {
-                                          '_DEFBLOCKS' => {},
-                                          '_VARIABLES' => {},
-                                          'modtime' => 1363988810,
-                                          'version' => '1',
-                                          'name' => 'complex.tt',
-                                          'layout' => 'default',
-                                          '_BLOCK' => sub { "DUMMY" },
-                                          '_HOT' => 0,
-                                          'title' => 'my document 2'
-                                        }, 'Template::Document' ),
-                   'dynamic' => $VAR1->[0]{'dynamic'},
-                   '_STRICT' => undef,
-                   'site' => $VAR1->[0]{'site'},
-                   'component' => '',
-                   '_DEBUG' => 0
-                 }, 'Template::Stash::XS' ),
-          bless( {
                    'PREFIX_MAP' => {},
-                   'BLOCKS' => {
-                                 'INIT' => sub { "DUMMY" }
-                               },
+                   'BLOCKS' => {},
                    'TRIM' => 0,
                    'CONFIG' => {
-                                 'PREFIX_MAP' => $VAR1->[2]{'PREFIX_MAP'},
+                                 'PREFIX_MAP' => $VAR1->[1]{'PREFIX_MAP'},
                                  'BLOCKS' => {},
                                  'TRIM' => 0,
                                  'LOAD_PLUGINS' => [
@@ -124,17 +89,17 @@
                                                                             '/home/sergey/workspace.web/Impl/_test/Resources/TTView/My/Org/TextPreview.tt',
                                                                             bless( {
                                                                                      '_DEFBLOCKS' => {
-                                                                                                       'INIT' => $VAR1->[2]{'BLOCKS'}{'INIT'}
+                                                                                                       'INIT' => sub { "DUMMY" }
                                                                                                      },
                                                                                      '_BLOCK' => sub { "DUMMY" },
                                                                                      '_VARIABLES' => {},
-                                                                                     'modtime' => 1363988727,
+                                                                                     'modtime' => 1364195248,
                                                                                      'name' => 'My/Org/TextPreview.tt',
                                                                                      '_HOT' => 0
                                                                                    }, 'Template::Document' ),
-                                                                            1363988727,
+                                                                            1364195248,
                                                                             [
-                                                                              $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'},
+                                                                              $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'},
                                                                               '/home/sergey/workspace.web/Impl/_test/Resources/TTView/My/Org/Panel.tt',
                                                                               bless( {
                                                                                        '_DEFBLOCKS' => {
@@ -142,14 +107,14 @@
                                                                                                        },
                                                                                        '_BLOCK' => sub { "DUMMY" },
                                                                                        '_VARIABLES' => {},
-                                                                                       'modtime' => 1363988821,
+                                                                                       'modtime' => 1364195248,
                                                                                        'version' => '1',
                                                                                        'name' => 'My/Org/Panel.tt',
                                                                                        '_HOT' => 0
                                                                                      }, 'Template::Document' ),
-                                                                              1363988821,
+                                                                              1364195248,
                                                                               [
-                                                                                $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4],
+                                                                                $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4],
                                                                                 '/home/sergey/workspace.web/Impl/_test/Resources/TTView/Layout/default.tt',
                                                                                 bless( {
                                                                                          '_DEFBLOCKS' => {
@@ -157,18 +122,28 @@
                                                                                                          },
                                                                                          '_BLOCK' => sub { "DUMMY" },
                                                                                          '_VARIABLES' => {},
-                                                                                         'modtime' => 1361220618,
+                                                                                         'modtime' => 1361182966,
                                                                                          'name' => 'Layout/default.tt',
                                                                                          '_HOT' => 0
                                                                                        }, 'Template::Document' ),
-                                                                                1361220618,
+                                                                                1361182966,
                                                                                 [
-                                                                                  $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4],
+                                                                                  $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4],
                                                                                   '/home/sergey/workspace.web/Impl/_test/Resources/TTView/complex.tt',
-                                                                                  $VAR1->[1]{'template'},
-                                                                                  1363988810,
+                                                                                  bless( {
+                                                                                           '_DEFBLOCKS' => {},
+                                                                                           '_VARIABLES' => {},
+                                                                                           'modtime' => 1364195248,
+                                                                                           'version' => '1',
+                                                                                           'name' => 'complex.tt',
+                                                                                           'layout' => 'default',
+                                                                                           '_BLOCK' => sub { "DUMMY" },
+                                                                                           '_HOT' => 0,
+                                                                                           'title' => 'my document 2'
+                                                                                         }, 'Template::Document' ),
+                                                                                  1364195248,
                                                                                   [
-                                                                                    $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4],
+                                                                                    $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4],
                                                                                     '/home/sergey/workspace.web/Impl/_test/Resources/TTView/simple.tt',
                                                                                     bless( {
                                                                                              '_DEFBLOCKS' => {
@@ -184,7 +159,7 @@
                                                                                            }, 'Template::Document' ),
                                                                                     1343890751,
                                                                                     [
-                                                                                      $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4],
+                                                                                      $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4],
                                                                                       '/home/sergey/workspace.web/Impl/_test/Resources/TTView/global.tt',
                                                                                       bless( {
                                                                                                '_DEFBLOCKS' => {},
@@ -197,17 +172,17 @@
                                                                                              }, 'Template::Document' ),
                                                                                       1343890751,
                                                                                       undef,
-                                                                                      1366221306
+                                                                                      1366207151
                                                                                     ],
-                                                                                    1366221306
+                                                                                    1366207151
                                                                                   ],
-                                                                                  1366221306
+                                                                                  1366207151
                                                                                 ],
-                                                                                1366221306
+                                                                                1366207151
                                                                               ],
-                                                                              1366221306
+                                                                              1366207151
                                                                             ],
-                                                                            1366221306
+                                                                            1366207151
                                                                           ],
                                                                 'DELIMITER' => ':',
                                                                 'UNICODE' => 1,
@@ -223,12 +198,12 @@
                                                                 'STAT_TTL' => 1,
                                                                 'ABSOLUTE' => 0,
                                                                 'LOOKUP' => {
-                                                                              '/home/sergey/workspace.web/Impl/_test/Resources/TTView/global.tt' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4][4],
-                                                                              '/home/sergey/workspace.web/Impl/_test/Resources/TTView/My/Org/Panel.tt' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4],
-                                                                              '/home/sergey/workspace.web/Impl/_test/Resources/TTView/simple.tt' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4],
-                                                                              '/home/sergey/workspace.web/Impl/_test/Resources/TTView/My/Org/TextPreview.tt' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'},
-                                                                              '/home/sergey/workspace.web/Impl/_test/Resources/TTView/Layout/default.tt' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4],
-                                                                              '/home/sergey/workspace.web/Impl/_test/Resources/TTView/complex.tt' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4]
+                                                                              '/home/sergey/workspace.web/Impl/_test/Resources/TTView/global.tt' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4][4],
+                                                                              '/home/sergey/workspace.web/Impl/_test/Resources/TTView/My/Org/Panel.tt' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4],
+                                                                              '/home/sergey/workspace.web/Impl/_test/Resources/TTView/simple.tt' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4],
+                                                                              '/home/sergey/workspace.web/Impl/_test/Resources/TTView/My/Org/TextPreview.tt' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'},
+                                                                              '/home/sergey/workspace.web/Impl/_test/Resources/TTView/Layout/default.tt' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4],
+                                                                              '/home/sergey/workspace.web/Impl/_test/Resources/TTView/complex.tt' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4]
                                                                             },
                                                                 'DEFAULT' => undef,
                                                                 'PARSER' => bless( {
@@ -5397,7 +5372,7 @@
                                                                                      'DEBUG_DIRS' => 0,
                                                                                      'PRE_CHOMP' => 0,
                                                                                      'GRAMMAR' => bless( {
-                                                                                                           'STATES' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'PARSER'}{'STATES'},
+                                                                                                           'STATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'PARSER'}{'STATES'},
                                                                                                            'RULES' => [
                                                                                                                         [
                                                                                                                           '$start',
@@ -6300,12 +6275,12 @@
                                                                                                                           sub { "DUMMY" }
                                                                                                                         ]
                                                                                                                       ],
-                                                                                                           'LEXTABLE' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'PARSER'}{'LEXTABLE'}
+                                                                                                           'LEXTABLE' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'PARSER'}{'LEXTABLE'}
                                                                                                          }, 'Template::Grammar' ),
-                                                                                     'RULES' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'PARSER'}{'GRAMMAR'}{'RULES'},
+                                                                                     'RULES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'PARSER'}{'GRAMMAR'}{'RULES'},
                                                                                      'FILE_INFO' => 1,
                                                                                      'TRACE_VARS' => undef,
-                                                                                     'DEFBLOCK' => $VAR1->[1]{'template'}{'_DEFBLOCKS'},
+                                                                                     'DEFBLOCK' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][2]{'_DEFBLOCKS'},
                                                                                      'METADATA' => [
                                                                                                      'version',
                                                                                                      '1',
@@ -6329,23 +6304,23 @@
                                                                                                     'START_TAG' => '\\[%'
                                                                                                   }
                                                                                                 ],
-                                                                                     'VARIABLES' => $VAR1->[1]{'template'}{'_VARIABLES'},
+                                                                                     'VARIABLES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][2]{'_VARIABLES'},
                                                                                      'START_TAG' => undef
                                                                                    }, 'Template::Parser' ),
-                                                                'TAIL' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4][4],
+                                                                'TAIL' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][4][4],
                                                                 'ENCODING' => 'utf-8',
                                                                 'SLOTS' => 6,
                                                                 'PARAMS' => {
                                                                               'ENCODING' => 'utf-8',
                                                                               'INTERPOLATE' => 1,
                                                                               'POST_CHOMP' => 1,
-                                                                              'INCLUDE_PATH' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'INCLUDE_PATH'}
+                                                                              'INCLUDE_PATH' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'INCLUDE_PATH'}
                                                                             },
                                                                 'COMPILE_EXT' => ''
                                                               }, 'Template::Provider' )
                                                      ],
                                  'BLKSTACK' => [],
-                                 'STASH' => $VAR1->[1],
+                                 'STASH' => $VAR1->[0],
                                  '_ERROR' => '',
                                  'DEBUG_FORMAT' => undef,
                                  'DEBUG' => 0,
@@ -6353,7 +6328,7 @@
                                  'EXPOSE_BLOCKS' => 0,
                                  'DEBUG_DIRS' => 0,
                                  'RECURSION' => 0,
-                                 'INIT_BLOCKS' => $VAR1->[2]{'CONFIG'}{'BLOCKS'},
+                                 'INIT_BLOCKS' => $VAR1->[1]{'CONFIG'}{'BLOCKS'},
                                  'LOAD_FILTERS' => [
                                                      bless( {
                                                               'DEBUG' => 0,
@@ -6363,10 +6338,10 @@
                                                             }, 'Template::Filters' )
                                                    ]
                                },
-                   'LOAD_PLUGINS' => $VAR1->[2]{'CONFIG'}{'LOAD_PLUGINS'},
-                   'LOAD_TEMPLATES' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'},
+                   'LOAD_PLUGINS' => $VAR1->[1]{'CONFIG'}{'LOAD_PLUGINS'},
+                   'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'},
                    'BLKSTACK' => [],
-                   'STASH' => $VAR1->[1],
+                   'STASH' => $VAR1->[0],
                    'DEBUG_FORMAT' => undef,
                    '_ERROR' => '',
                    'DEBUG' => 0,
@@ -6374,26 +6349,25 @@
                    'EXPOSE_BLOCKS' => 0,
                    'DEBUG_DIRS' => 0,
                    'RECURSION' => 0,
-                   'INIT_BLOCKS' => $VAR1->[2]{'BLOCKS'},
-                   'LOAD_FILTERS' => $VAR1->[2]{'CONFIG'}{'LOAD_FILTERS'}
+                   'INIT_BLOCKS' => $VAR1->[1]{'BLOCKS'},
+                   'LOAD_FILTERS' => $VAR1->[1]{'CONFIG'}{'LOAD_FILTERS'}
                  }, 'Template::Context' ),
           bless( {
-                   'IMPL_Web_View_TTRegistry_context' => $VAR1->[2],
-                   'IMPL_Web_View_TTRegistry_loader' => bless( {
+                   'IMPL_Web_View_TTDocument_loader' => bless( {
                                                                  'IMPL_Web_View_TTLoader_context' => bless( {
-                                                                                                              'PREFIX_MAP' => $VAR1->[2]{'PREFIX_MAP'},
-                                                                                                              'BLOCKS' => {},
+                                                                                                              'PREFIX_MAP' => $VAR1->[1]{'PREFIX_MAP'},
+                                                                                                              'BLOCKS' => $VAR1->[1]{'CONFIG'}{'BLOCKS'},
                                                                                                               'TRIM' => 0,
                                                                                                               'CONFIG' => {
                                                                                                                             'ENCODING' => 'utf-8',
                                                                                                                             'POST_CHOMP' => 1,
                                                                                                                             'INTERPOLATE' => 1,
-                                                                                                                            'LOAD_TEMPLATES' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0],
-                                                                                                                            'INCLUDE_PATH' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'INCLUDE_PATH'}
+                                                                                                                            'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0],
+                                                                                                                            'INCLUDE_PATH' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'INCLUDE_PATH'}
                                                                                                                           },
-                                                                                                              'LOAD_PLUGINS' => $VAR1->[2]{'CONFIG'}{'LOAD_PLUGINS'},
-                                                                                                              'LOAD_TEMPLATES' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'},
-                                                                                                              'BLKSTACK' => [],
+                                                                                                              'LOAD_PLUGINS' => $VAR1->[1]{'CONFIG'}{'LOAD_PLUGINS'},
+                                                                                                              'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'},
+                                                                                                              'BLKSTACK' => $VAR1->[1]{'CONFIG'}{'BLKSTACK'},
                                                                                                               'STASH' => $VAR1->[0]{'_PARENT'},
                                                                                                               'DEBUG_FORMAT' => undef,
                                                                                                               '_ERROR' => '',
@@ -6402,12 +6376,12 @@
                                                                                                               'EXPOSE_BLOCKS' => 0,
                                                                                                               'DEBUG_DIRS' => 0,
                                                                                                               'RECURSION' => 0,
-                                                                                                              'INIT_BLOCKS' => $VAR1->[3]{'IMPL_Web_View_TTRegistry_loader'}{'IMPL_Web_View_TTLoader_context'}{'BLOCKS'},
-                                                                                                              'LOAD_FILTERS' => $VAR1->[2]{'CONFIG'}{'LOAD_FILTERS'}
+                                                                                                              'INIT_BLOCKS' => $VAR1->[1]{'CONFIG'}{'BLOCKS'},
+                                                                                                              'LOAD_FILTERS' => $VAR1->[1]{'CONFIG'}{'LOAD_FILTERS'}
                                                                                                             }, 'Template::Context' ),
                                                                  'IMPL_Web_View_TTLoader_layoutBase' => 'Layout',
                                                                  'IMPL_Web_View_TTLoader_initializer' => 'global.tt',
-                                                                 'IMPL_Web_View_TTLoader_provider' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0],
+                                                                 'IMPL_Web_View_TTLoader_provider' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0],
                                                                  'IMPL_Web_View_TTLoader_ext' => '.tt',
                                                                  'IMPL_Web_View_TTLoader__globals' => {
                                                                                                         'site' => $VAR1->[0]{'site'},
@@ -6415,31 +6389,164 @@
                                                                                                         'date' => $VAR1->[0]{'date'},
                                                                                                         'dynamic' => $VAR1->[0]{'dynamic'}
                                                                                                       },
-                                                                 'IMPL_Web_View_TTLoader_options' => $VAR1->[3]{'IMPL_Web_View_TTRegistry_loader'}{'IMPL_Web_View_TTLoader_context'}{'CONFIG'},
+                                                                 'IMPL_Web_View_TTLoader_options' => $VAR1->[2]{'IMPL_Web_View_TTDocument_loader'}{'IMPL_Web_View_TTLoader_context'}{'CONFIG'},
                                                                  'IMPL_Web_View_TTLoader_isInitialized' => 1
                                                                }, 'IMPL::Web::View::TTLoader' ),
-                   'IMPL_Web_View_TTRegistry__cache' => {
-                                                          'My/Org/TextPreview' => bless( {
-                                                                                           'IMPL_Web_View_TTFactory_registry' => $VAR1->[3],
-                                                                                           'IMPL_Web_View_TTFactory_blocks' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[2]{'_DEFBLOCKS'},
-                                                                                           'IMPL_Web_View_TTFactory_instances' => 0,
-                                                                                           'IMPL_Object_Factory_factory' => 'IMPL::Web::View::TTControl',
-                                                                                           'IMPL_Web_View_TTFactory_baseLocation' => 'My/Org',
-                                                                                           'IMPL_Web_View_TTFactory_context' => $VAR1->[2],
-                                                                                           'IMPL_Web_View_TTFactory_template' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[2]
-                                                                                         }, 'IMPL::Web::View::TTFactory' ),
-                                                          'My/Org/Panel' => bless( {
-                                                                                     'IMPL_Web_View_TTFactory_initialized' => 1,
-                                                                                     'IMPL_Web_View_TTFactory_registry' => $VAR1->[3],
-                                                                                     'IMPL_Web_View_TTFactory_instances' => 1,
-                                                                                     'IMPL_Object_Factory_factory' => 'IMPL::Web::View::TTControl',
-                                                                                     'IMPL_Web_View_TTFactory_baseLocation' => 'My/Org',
-                                                                                     'IMPL_Web_View_TTFactory_context' => $VAR1->[2],
-                                                                                     'IMPL_Web_View_TTFactory_blocks' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][2]{'_DEFBLOCKS'},
-                                                                                     'IMPL_Web_View_TTFactory_template' => $VAR1->[2]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][2]
-                                                                                   }, 'IMPL::Web::View::TTFactory' )
-                                                        }
-                 }, 'IMPL::Web::View::TTRegistry' ),
-          $VAR1->[3]{'IMPL_Web_View_TTRegistry__cache'}{'My/Org/Panel'},
-          $VAR1->[3]{'IMPL_Web_View_TTRegistry__cache'}{'My/Org/TextPreview'}
+                   'IMPL_Web_View_TTControl_id' => '_14',
+                   'IMPL_Web_View_TTControl_template' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][2],
+                   'IMPL_Web_View_TTControl_context' => $VAR1->[1],
+                   'IMPL_Web_View_TTDocument_layout' => 'default',
+                   'IMPL_Web_View_TTControl_attributes' => {
+                                                             'childNodes' => [
+                                                                               bless( {
+                                                                                        'IMPL_Web_View_TTControl_id' => '_15',
+                                                                                        'IMPL_Web_View_TTControl_template' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][2],
+                                                                                        'IMPL_Web_View_TTControl_context' => bless( {
+                                                                                                                                      'PREFIX_MAP' => $VAR1->[1]{'PREFIX_MAP'},
+                                                                                                                                      'BLOCKS' => {
+                                                                                                                                                    'INIT' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][2]{'_DEFBLOCKS'}{'INIT'}
+                                                                                                                                                  },
+                                                                                                                                      'TRIM' => 0,
+                                                                                                                                      'CONFIG' => {
+                                                                                                                                                    'PREFIX_MAP' => $VAR1->[1]{'PREFIX_MAP'},
+                                                                                                                                                    'BLOCKS' => {
+                                                                                                                                                                  'INIT' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[2]{'_DEFBLOCKS'}{'INIT'}
+                                                                                                                                                                },
+                                                                                                                                                    'TRIM' => 0,
+                                                                                                                                                    'LOAD_PLUGINS' => $VAR1->[1]{'CONFIG'}{'LOAD_PLUGINS'},
+                                                                                                                                                    'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'},
+                                                                                                                                                    'BLKSTACK' => [],
+                                                                                                                                                    'STASH' => bless( {
+                                                                                                                                                                        'require' => sub { "DUMMY" },
+                                                                                                                                                                        'inc' => $VAR1->[0]{'inc'},
+                                                                                                                                                                        'date' => $VAR1->[0]{'date'},
+                                                                                                                                                                        'document' => $VAR1->[2],
+                                                                                                                                                                        'dec' => $VAR1->[0]{'dec'},
+                                                                                                                                                                        'dojoDefaultClass' => 'dijit.form.Input',
+                                                                                                                                                                        'dojo' => {
+                                                                                                                                                                                    'require' => [
+                                                                                                                                                                                                   'dijit.form.Input'
+                                                                                                                                                                                                 ]
+                                                                                                                                                                                  },
+                                                                                                                                                                        'view' => $VAR1->[0]{'view'},
+                                                                                                                                                                        'user' => 'test_user',
+                                                                                                                                                                        '_PARENT' => bless( {
+                                                                                                                                                                                              'require' => sub { "DUMMY" },
+                                                                                                                                                                                              'date' => $VAR1->[0]{'date'},
+                                                                                                                                                                                              'inc' => $VAR1->[0]{'inc'},
+                                                                                                                                                                                              'document' => $VAR1->[2],
+                                                                                                                                                                                              'dec' => $VAR1->[0]{'dec'},
+                                                                                                                                                                                              'dojoDefaultClass' => 'dijit.form.Input',
+                                                                                                                                                                                              'dojo' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'STASH'}{'dojo'},
+                                                                                                                                                                                              'view' => $VAR1->[0]{'view'},
+                                                                                                                                                                                              'user' => 'test_user',
+                                                                                                                                                                                              '_PARENT' => $VAR1->[0],
+                                                                                                                                                                                              'global' => $VAR1->[0]{'global'},
+                                                                                                                                                                                              'template' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][2],
+                                                                                                                                                                                              'dynamic' => $VAR1->[0]{'dynamic'},
+                                                                                                                                                                                              '_STRICT' => undef,
+                                                                                                                                                                                              'site' => $VAR1->[0]{'site'},
+                                                                                                                                                                                              'component' => '',
+                                                                                                                                                                                              '_DEBUG' => 0
+                                                                                                                                                                                            }, 'Template::Stash::XS' ),
+                                                                                                                                                                        'global' => $VAR1->[0]{'global'},
+                                                                                                                                                                        'template' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][4][4][2],
+                                                                                                                                                                        'dynamic' => $VAR1->[0]{'dynamic'},
+                                                                                                                                                                        '_STRICT' => undef,
+                                                                                                                                                                        'site' => $VAR1->[0]{'site'},
+                                                                                                                                                                        'component' => '',
+                                                                                                                                                                        '_DEBUG' => 0
+                                                                                                                                                                      }, 'Template::Stash::XS' ),
+                                                                                                                                                    '_ERROR' => '',
+                                                                                                                                                    'DEBUG_FORMAT' => undef,
+                                                                                                                                                    'DEBUG' => 0,
+                                                                                                                                                    'EVAL_PERL' => 0,
+                                                                                                                                                    'EXPOSE_BLOCKS' => 0,
+                                                                                                                                                    'DEBUG_DIRS' => 0,
+                                                                                                                                                    'RECURSION' => 0,
+                                                                                                                                                    'INIT_BLOCKS' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'BLOCKS'},
+                                                                                                                                                    'LOAD_FILTERS' => $VAR1->[1]{'CONFIG'}{'LOAD_FILTERS'}
+                                                                                                                                                  },
+                                                                                                                                      'LOAD_PLUGINS' => $VAR1->[1]{'CONFIG'}{'LOAD_PLUGINS'},
+                                                                                                                                      'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'},
+                                                                                                                                      'BLKSTACK' => [],
+                                                                                                                                      'STASH' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'STASH'},
+                                                                                                                                      'DEBUG_FORMAT' => undef,
+                                                                                                                                      '_ERROR' => '',
+                                                                                                                                      'DEBUG' => 0,
+                                                                                                                                      'EVAL_PERL' => 0,
+                                                                                                                                      'EXPOSE_BLOCKS' => 0,
+                                                                                                                                      'DEBUG_DIRS' => 0,
+                                                                                                                                      'RECURSION' => 0,
+                                                                                                                                      'INIT_BLOCKS' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'BLOCKS'},
+                                                                                                                                      'LOAD_FILTERS' => $VAR1->[1]{'CONFIG'}{'LOAD_FILTERS'}
+                                                                                                                                    }, 'Template::Context' ),
+                                                                                        'IMPL_Web_View_TTControl_attributes' => {
+                                                                                                                                  'factory' => bless( {
+                                                                                                                                                        'IMPL_Web_View_TTFactory_initialized' => 1,
+                                                                                                                                                        'IMPL_Web_View_TTFactory_registry' => bless( {
+                                                                                                                                                                                                       'IMPL_Web_View_TTRegistry_context' => undef,
+                                                                                                                                                                                                       'IMPL_Web_View_TTRegistry_loader' => undef,
+                                                                                                                                                                                                       'IMPL_Web_View_TTRegistry__cache' => undef
+                                                                                                                                                                                                     }, 'IMPL::Object::Disposed' ),
+                                                                                                                                                        'IMPL_Web_View_TTFactory_instances' => 1,
+                                                                                                                                                        'IMPL_Object_Factory_factory' => 'IMPL::Web::View::TTControl',
+                                                                                                                                                        'IMPL_Web_View_TTFactory_baseLocation' => 'My/Org',
+                                                                                                                                                        'IMPL_Web_View_TTFactory_context' => bless( {
+                                                                                                                                                                                                      'PREFIX_MAP' => $VAR1->[1]{'PREFIX_MAP'},
+                                                                                                                                                                                                      'BLOCKS' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'BLOCKS'},
+                                                                                                                                                                                                      'TRIM' => 0,
+                                                                                                                                                                                                      'CONFIG' => {
+                                                                                                                                                                                                                    'PREFIX_MAP' => $VAR1->[1]{'PREFIX_MAP'},
+                                                                                                                                                                                                                    'BLOCKS' => $VAR1->[1]{'BLOCKS'},
+                                                                                                                                                                                                                    'TRIM' => 0,
+                                                                                                                                                                                                                    'LOAD_PLUGINS' => $VAR1->[1]{'CONFIG'}{'LOAD_PLUGINS'},
+                                                                                                                                                                                                                    'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'},
+                                                                                                                                                                                                                    'BLKSTACK' => $VAR1->[1]{'BLKSTACK'},
+                                                                                                                                                                                                                    'STASH' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'STASH'}{'_PARENT'},
+                                                                                                                                                                                                                    '_ERROR' => '',
+                                                                                                                                                                                                                    'DEBUG_FORMAT' => undef,
+                                                                                                                                                                                                                    'DEBUG' => 0,
+                                                                                                                                                                                                                    'EVAL_PERL' => 0,
+                                                                                                                                                                                                                    'EXPOSE_BLOCKS' => 0,
+                                                                                                                                                                                                                    'DEBUG_DIRS' => 0,
+                                                                                                                                                                                                                    'RECURSION' => 0,
+                                                                                                                                                                                                                    'INIT_BLOCKS' => $VAR1->[1]{'BLOCKS'},
+                                                                                                                                                                                                                    'LOAD_FILTERS' => $VAR1->[1]{'CONFIG'}{'LOAD_FILTERS'}
+                                                                                                                                                                                                                  },
+                                                                                                                                                                                                      'LOAD_PLUGINS' => $VAR1->[1]{'CONFIG'}{'LOAD_PLUGINS'},
+                                                                                                                                                                                                      'LOAD_TEMPLATES' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'},
+                                                                                                                                                                                                      'BLKSTACK' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'BLKSTACK'},
+                                                                                                                                                                                                      'STASH' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'STASH'}{'_PARENT'},
+                                                                                                                                                                                                      'DEBUG_FORMAT' => undef,
+                                                                                                                                                                                                      '_ERROR' => '',
+                                                                                                                                                                                                      'DEBUG' => 0,
+                                                                                                                                                                                                      'EVAL_PERL' => 0,
+                                                                                                                                                                                                      'EXPOSE_BLOCKS' => 0,
+                                                                                                                                                                                                      'DEBUG_DIRS' => 0,
+                                                                                                                                                                                                      'RECURSION' => 0,
+                                                                                                                                                                                                      'INIT_BLOCKS' => $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'BLOCKS'},
+                                                                                                                                                                                                      'LOAD_FILTERS' => $VAR1->[1]{'CONFIG'}{'LOAD_FILTERS'}
+                                                                                                                                                                                                    }, 'Template::Context' ),
+                                                                                                                                                        'IMPL_Web_View_TTFactory_blocks' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][2]{'_DEFBLOCKS'},
+                                                                                                                                                        'IMPL_Web_View_TTFactory_template' => $VAR1->[1]{'CONFIG'}{'LOAD_TEMPLATES'}[0]{'HEAD'}[4][2]
+                                                                                                                                                      }, 'IMPL::Web::View::TTFactory' ),
+                                                                                                                                  'dojoClass' => 'dijit.form.Input',
+                                                                                                                                  'childNodes' => [],
+                                                                                                                                  'visualClass' => 'classic',
+                                                                                                                                  'data' => ''
+                                                                                                                                }
+                                                                                      }, 'IMPL::Web::View::TTControl' )
+                                                                             ],
+                                                             'title' => 'my document 2'
+                                                           }
+                 }, 'IMPL::Web::View::TTDocument' ),
+          $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'STASH'}{'_PARENT'},
+          $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_attributes'}{'factory'}{'IMPL_Web_View_TTFactory_context'},
+          $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_attributes'}{'factory'}{'IMPL_Web_View_TTFactory_registry'},
+          $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_attributes'}{'factory'},
+          $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'}{'CONFIG'}{'STASH'},
+          $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_context'},
+          $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0],
+          $VAR1->[2]{'IMPL_Web_View_TTControl_attributes'}{'childNodes'}[0]{'IMPL_Web_View_TTControl_attributes'}{'factory'}{'IMPL_Web_View_TTFactory_registry'}
         ];