view Lib/Form/Filter/Depends.pm @ 165:76515373dac0

Added Class::Template, Rewritten SQL::Schema 'use parent' directive instead of 'use base'
author wizard
date Sat, 23 Apr 2011 23:06:48 +0400
parents 16ada169ca75
children
line wrap: on
line source

package Form::Filter::Depends;
use parent qw(Form::Filter);

use Common;

BEGIN {
    DeclareProperty Fields => ACCESS_READ;
}

sub SUPPORTED_CONTEXT { Form::Filter::CTX_SINGLE | Form::Filter::CTX_SET }

sub CTOR {
    my ($this,$name,$message,@fields) = @_;
    
    $this->SUPER::CTOR($name,$message);
    $this->{$Fields} = \@fields;
}

sub Invoke {
    my ($this,$object,$context,$schemaTarget) = @_;

    foreach my $field (@{$this->{$Fields}}) {
        my $objProv = $object->Navigate($object->Form->MakeItemId($field,$object->Parent));

        if ( not $objProv or $objProv->isEmpty ) {
            return new Form::FilterResult(State => Form::FilterResult::STATE_STOP);
        }

    }

    return new Form::FilterResult(State => Form::FilterResult::STATE_SUCCESS_STAY);
}

1;