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