annotate Lib/IMPL/Web/TT/Collection.pm @ 178:658a80d19d33

new constructor syntax
author sourcer
date Wed, 12 Oct 2011 00:06:07 +0300
parents 4267a2ac3d46
children d1676be8afcc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
107
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
1 package IMPL::Web::TT::Collection;
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
2 use strict;
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
3
166
4267a2ac3d46 Added Class::Template,
wizard
parents: 154
diff changeset
4 use parent qw(IMPL::DOM::Node);
107
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
5
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
6 __PACKAGE__->PassThroughArgs;
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
7
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
8 our $AUTOLOAD;
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
9 sub AUTOLOAD {
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
10 my $this = shift;
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
11 my ($method) = ($AUTOLOAD =~ /(\w+)$/);
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
12
109
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
13 return if $method eq 'DESTROY';
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
14
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
15 if ( @_ >= 1 ) {
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
16 # set
150
4369d5458bb6 minor fixes
wizard
parents: 109
diff changeset
17
4369d5458bb6 minor fixes
wizard
parents: 109
diff changeset
18 if ($method =~ /^add(\w+)/) {
4369d5458bb6 minor fixes
wizard
parents: 109
diff changeset
19 my ($name,$args) = @_;
4369d5458bb6 minor fixes
wizard
parents: 109
diff changeset
20 return $this->appendChild($this->document->CreateControl($name,$1,$args));
4369d5458bb6 minor fixes
wizard
parents: 109
diff changeset
21 }
4369d5458bb6 minor fixes
wizard
parents: 109
diff changeset
22
109
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
23 # we can't assing a node, so this is a dynamic property
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
24 return $this->nodeProperty($method,@_);
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
25 } else {
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
26 # get
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
27 # try a dynamic property first
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
28 if ( my $val = $this->nodeProperty($method) ) {
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
29 return $val;
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
30 } else {
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
31 # and return a first child node as last opportunity
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
32 my @result = $this->selectNodes($method);
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
33
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
34 return $result[0] if @result;
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
35 }
ddf0f037d460 IMPL::DOM::Node updated to support TT, (added childNodesRef and selectNodesRef for using from TT)
wizard
parents: 107
diff changeset
36 }
150
4369d5458bb6 minor fixes
wizard
parents: 109
diff changeset
37
4369d5458bb6 minor fixes
wizard
parents: 109
diff changeset
38 return;
107
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
39 }
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
40
0e72ad99eef7 Updated Web::TT
wizard
parents:
diff changeset
41 1;