view Lib/IMPL/Web/TT/Control.pm @ 107:0e72ad99eef7

Updated Web::TT
author wizard
date Thu, 13 May 2010 03:46:29 +0400
parents a5cb84374d40
children c6fb6964de4c
line wrap: on
line source

package IMPL::Web::TT::Control;

use base qw(IMPL::DOM::Node);

use IMPL::Class::Property;

__PACKAGE__->PassThroughArgs;

BEGIN {
	public property template => prop_all;
	public property id => prop_all;
}

my $nextId = 1;

sub CTOR {
	my ($this,%args) = @_;
	
	$this->template($args{template}) if $args{template};
	$this->id($this->nodeName . '-' . $nextId++);
}

sub Render {
	my ($this) = @_;
	
	if ($this->document) {
		if ($this->template) {
			return $this->document->context->include($this->template,{ this => $this });
		} elsif ($this->document->presenter) {
			return $this->document->presenter->print($this);
		} else {
			return $this->toString();
		}
	}
}

1;