Mercurial > pub > Impl
diff Lib/IMPL/Web/View/Metadata/FormProvider.pm @ 365:7c621bb95e53
working on the metadata model
author | sergey |
---|---|
date | Mon, 02 Dec 2013 02:13:12 +0400 |
parents | 82b6c967bcf1 |
children | 935629bf80df |
line wrap: on
line diff
--- a/Lib/IMPL/Web/View/Metadata/FormProvider.pm Fri Nov 29 16:33:07 2013 +0400 +++ b/Lib/IMPL/Web/View/Metadata/FormProvider.pm Mon Dec 02 02:13:12 2013 +0400 @@ -2,6 +2,9 @@ use strict; use IMPL::declare { + require => { + Meta => 'IMPL::Web::View::Metadata::FormMeta' + }, base => [ 'IMPL::Object' => undef ] @@ -14,14 +17,28 @@ sub PopulateChildren { my ($this,$meta) = @_; - map { - $_->name, - $_ - } $meta->schema->content->childNodes; + map Meta->new($this,), $meta->schema->content->childNodes; } sub GetChild { +} + +sub _IsErrorRelates { + my ($node,$source,$err) = @_; + + # this is an own error + return 1 if ($node && $err->node && $err->node == $node) || (not($node) && $err->schema == $source ); + + # this error relates to the child control + + return 0 unless $node; + + for (my $n = $err->parent; $n ; $n = $n->parentNode) { + return 1 if $n == $node; + } + + return 0; } 1; \ No newline at end of file