widget now passes layoutset to rendering context
matthewt [Thu, 15 Nov 2007 20:16:27 +0000 (20:16 +0000)]
lib/Reaction/UI/RenderingContext/TT.pm
lib/Reaction/UI/View.pm
lib/Reaction/UI/Widget.pm
lib/Reaction/UI/WidgetClass.pm

index 07c700b..a4e3ff8 100644 (file)
@@ -6,15 +6,13 @@ use aliased 'Template::View';
 
 class TT is RenderingContext, which {
 
-  has 'tt_view' => ( is => 'ro', required => 1, isa => View);
-
   has 'iter_class' => (
     is => 'ro', required => 1,
     default => sub { 'Reaction::UI::Renderer::TT::Iter'; },
   );
 
   implements 'render' => as {
-    my ($self, $fname, $args) = @_;
+    my ($self, $lset, $fname, $args) = @_;
   
     # foreach non-_ prefixed key in the args
     # build a subref for this key that passes self so the generator has a
@@ -43,7 +41,7 @@ class TT is RenderingContext, which {
       $tt_args->{content} = $iter;
       $tt_args->{pos} = sub { $iter->pos };
     }
-    $self->tt_view->include($fname, $tt_args);
+    $lset->tt_view->include($fname, $tt_args);
   };
 
 };
index 1f7c00c..468790b 100644 (file)
@@ -63,7 +63,9 @@ class View which {
   implements 'widget_for' => as {
     my ($self, $vp, $layout_set) = @_;
     return $self->widget_class_for($layout_set)
-                ->new(view => $self, viewport => $vp);
+                ->new(
+                    view => $self, viewport => $vp, layout_set => $layout_set
+                  );
   };
 
   implements 'widget_class_for' => as {
index a0b9380..c27e905 100644 (file)
@@ -3,11 +3,13 @@ package Reaction::UI::Widget;
 use Reaction::Class;
 use aliased 'Reaction::UI::ViewPort';
 use aliased 'Reaction::UI::View';
+use aliased 'Reaction::UI::LayoutSet';
 
 class Widget which {
 
   has 'viewport' => (isa => ViewPort, is => 'ro'); # required?
   has 'view' => (isa => View, is => 'ro', required => 1);
+  has 'layout_set' => (isa => LayoutSet, is => 'ro', required => 1);
 
   implements 'render' => as {
     my ($self, $rctx) = @_;
index 3e28300..ba8f70a 100644 (file)
@@ -229,7 +229,7 @@ where content spec is [ fragment_name => over (func(...)|$_|$_{keyname}), \%args
       @{$r_args}{@extra_keys} = map { $_->($self, $args); } @extra_gen;
       $r_args->{'_'} = $content_gen->($self, $args);
 #warn Dumper($r_args).' ';
-      $rctx->render($fname, $r_args);
+      $rctx->render($self->layout_set, $fname, $r_args);
     };
 
     $class->meta->add_method($methname => $meth);