view Lib/Schema/Form/Container.pm @ 123:1d7e370a91fa

Additional DOM::Node tests
author wizard
date Wed, 09 Jun 2010 17:53:12 +0400
parents 16ada169ca75
children 4267a2ac3d46
line wrap: on
line source

package Schema::Form::Container;
use Form::Container;
use Common;
use base qw(Schema::Form::Item);

BEGIN {
    DeclareProperty Children => ACCESS_READ;
}

sub CTOR {
    my ($this,%args) = @_;
    
    $this->SUPER::CTOR(@args{qw(Name isMulti Filters)});
    
    $this->{$Children} = [];
    
}

sub AddChild {
    my ($this,$child) = @_;
    
    not grep { $_->Name eq $child->Name } $this->Children or die new Exception("The item already exists",$child->Name);
    
    push @{$this->{$Children}},$child;
}

sub FindChild {
    my ($this,$name) = @_;
    
    my @result = grep { $_->Name eq $name} $this->Children;
    return $result[0];
}

sub Dispose {
    my ($this) = @_;
    
    delete $this->{$Children};
    
    $this->SUPER::Dispose;
}
1;