--- trunk/lib/Frey/ObjectBrowser.pm 2008/07/11 10:29:31 95 +++ trunk/lib/Frey/ObjectBrowser.pm 2008/07/13 12:22:14 106 @@ -3,6 +3,13 @@ use MooseX::Method; extends 'Frey'; +with 'Frey::Web'; + +has 'fey_class' => ( + is => 'rw', + isa => 'Str', + required => 1, +); my @callbacks; @@ -24,8 +31,8 @@ #use Data::Dumper; #$Data::Dumper::Deparse = 1; use Data::Dump qw/dump/; -use Data::Structure::Util qw(unbless); +use Frey::Web::Row; #method 'html' => positional( # isa => 'Continuity::RequestHolder', @@ -37,18 +44,13 @@ my $f = { $req->params }; my $layout = delete( $f->{layout} ) || 'div'; - use Strix::User; - use Strix::View::User; - - my $s = Strix::User->rows(); - #warn "# s = ",dump( $s ); + my $s = $self->fey_class->collection(); + warn "# s ",$self->fey_class," = ",dump( $s ) if $self->debug; my @w; while ( my $u = $s->next ) { - my $w = Strix::View::User->new( %{ $u } ); - $w->_fey( $u ); - $w->_layout( $layout ); + my $w = Frey::Web::Row->new( fey_class => $self->fey_class, fey => $u, layout => $layout ); warn "# w = ",dump( $w ) if $self->debug; push @w, $w; } @@ -68,14 +70,13 @@ $rows_delimiter = '
' if $layout eq 'div'; my $form = join($rows_delimiter, map { - $_->_layout( $layout ); + $_->layout( $layout ); # FIXME do we need this still? $_->process($f) || '' } @w ); - if ( $w[ $#w ]->_fey ) { + if ( $w[ $#w ]->fey ) { warn "+++ added new item widget\n"; - my $w = Strix::View::User->new( render_as => 'edit' ); - $w->_layout( $layout ); + my $w = Frey::Web::Row->new( fey_class => $self->fey_class, render_as => 'edit', layout => $layout ); $form .= $rows_delimiter . $w->process; push @w, $w; } @@ -104,24 +105,24 @@ qq||, ); - my $doc = Continuity::Widget::DomNode->create( + my $html = dom2html( html => [ head => [ link => { rel=>"stylesheet", href=>"/static/form.css", type=>"text/css" } ], body => [ - h1 => [ 'Strix::User' ], + h1 => [ $self->fey_class ], $layout_picker, form => { method=>'post' } => [ $form, ], ], ] - )->to_string; + ); - warn ">>> $layout ",length( $doc ),"\n"; + warn ">>> $layout ",length( $html ),"\n"; - $req->print( $doc ); + $req->print( $html ); $req->next; $f = { $req->params };