annotate Lib/IMPL/Web/TT/Control.pm @ 108:c6fb6964de4c

Removed absolute modules Updated DOM model, selectNodes can now select a complex path Web DOM model release candidate
author wizard
date Fri, 14 May 2010 16:06:06 +0400
parents 0e72ad99eef7
children ddf0f037d460
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
78
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
1 package IMPL::Web::TT::Control;
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
2
108
c6fb6964de4c Removed absolute modules
wizard
parents: 107
diff changeset
3 use base qw(IMPL::Web::TT::Collection);
78
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
4
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
5 use IMPL::Class::Property;
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
6
107
0e72ad99eef7 Updated Web::TT
wizard
parents: 78
diff changeset
7 __PACKAGE__->PassThroughArgs;
78
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
8
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
9 BEGIN {
108
c6fb6964de4c Removed absolute modules
wizard
parents: 107
diff changeset
10 public property controlClass => prop_all;
78
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
11 public property template => prop_all;
107
0e72ad99eef7 Updated Web::TT
wizard
parents: 78
diff changeset
12 public property id => prop_all;
0e72ad99eef7 Updated Web::TT
wizard
parents: 78
diff changeset
13 }
0e72ad99eef7 Updated Web::TT
wizard
parents: 78
diff changeset
14
0e72ad99eef7 Updated Web::TT
wizard
parents: 78
diff changeset
15 my $nextId = 1;
0e72ad99eef7 Updated Web::TT
wizard
parents: 78
diff changeset
16
0e72ad99eef7 Updated Web::TT
wizard
parents: 78
diff changeset
17 sub CTOR {
0e72ad99eef7 Updated Web::TT
wizard
parents: 78
diff changeset
18 my ($this,%args) = @_;
0e72ad99eef7 Updated Web::TT
wizard
parents: 78
diff changeset
19
0e72ad99eef7 Updated Web::TT
wizard
parents: 78
diff changeset
20 $this->template($args{template}) if $args{template};
0e72ad99eef7 Updated Web::TT
wizard
parents: 78
diff changeset
21 $this->id($this->nodeName . '-' . $nextId++);
108
c6fb6964de4c Removed absolute modules
wizard
parents: 107
diff changeset
22 $this->controlClass($args{controlClass} || 'Control');
78
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
23 }
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
24
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
25 sub Render {
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
26 my ($this) = @_;
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
27
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
28 if ($this->document) {
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
29 if ($this->template) {
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
30 return $this->document->context->include($this->template,{ this => $this });
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
31 } elsif ($this->document->presenter) {
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
32 return $this->document->presenter->print($this);
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
33 } else {
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
34 return $this->toString();
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
35 }
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
36 }
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
37 }
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
38
a5cb84374d40 TT::Control in work
wizard
parents:
diff changeset
39 1;