view Lib/Schema/Form/Field.pm @ 18:818c74b038ae

DOM Schema + tests
author Sergey
date Thu, 10 Sep 2009 17:42:47 +0400
parents 03e58a454b20
children 16ada169ca75
line wrap: on
line source

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

BEGIN {
    DeclareProperty Format => ACCESS_READ;
}

sub CTOR {
    my ($this,%args) = @_;
    
    $args{'Format'} or die new Exception('A format is required for a field');
    
    $args{'Attributes'} = { %{$args{Format}->Attributes},%{$args{Attributes} || {} } };
    
    $this->SUPER::CTOR(@args{qw(Name isMulti Filters Attributes)});
    $this->{$Format} = $args{'Format'};
}

=pod
Сначала применить фильтры формата а потом фильтры поля
=cut
sub Filters {
    my ($this) = @_;
    
    my @filters = $this->{$Format}->Filters;
    push @filters,$this->SUPER::Filters;
    
    return @filters;
}

1;