--- trunk/lib/Frey/ObjectDesigner.pm 2008/07/13 17:38:01 113 +++ trunk/lib/Frey/ObjectDesigner.pm 2008/07/16 14:17:46 143 @@ -12,72 +12,42 @@ use Data::Dump qw/dump/; -use Frey::Web::Row; +use Frey::Web::Design; use Frey::Web::Links; sub html { my ( $self, $req ) = @_; - my $f = { $req->params }; - my $layout = delete( $f->{layout} ) || 'div'; + $self->add_css( 'static/form.css' ); + + my $pager; while ( 1 ) { - + my $f = { $req->params }; warn "<<< GOT REQUEST ",dump( $f ); - - # re-apply (changed?) layout to elements - if ( defined $f->{layout} ) { - $layout = delete( $f->{layout} ); - warn "# new layout = $layout\n"; - } - - my $w = Frey::Web::Row->new( fey_class => $self->fey_class, layout => $layout, render_as => 'edit' ); - - my $form = $w->process($f); - - $form = qq|$form
| if $layout eq 'table'; - - if ( $layout eq 'columns' ) { - # add header to table - my $header = $w->render_iterator( sub { - my ( $name, $field_name, $label, $val ) = @_; - return if $name =~ /^_/; - return qq|$label|; - }); - $form = qq|$header$form
|; - } - - my $layout_picker = - qq|
layout: | . - Frey::Web::Links->new( - name => 'layout', - current => $layout, - values => [ 'div', 'table', 'columns' ], - )->links . - qq|
| - ; - - my $html = dom2html( - html => [ - head => [ - link => { rel=>"stylesheet", href=>"/static/form.css", type=>"text/css" } - ], - body => [ - h1 => [ $self->fey_class ], - $layout_picker, - form => { method=>'post' } => [ - $form, - ], - ], - ] + + $pager = Frey::Pager->new( + fey_class => $self->fey_class, + item_constructor => sub { + Frey::Web::Design->new( fey_class => $self->fey_class, @_ ); + }, + ) if ! $pager; + + $pager->update_collection; + + my $form = $pager->items_in_layout( $f ); + $form = $pager->last_item->render_table_wrapper( $form ); + + my $html = $self->page( + body => '

' . $self->fey_class . '

' + . $pager->last_item->layout_picker # FIXME + . qq|
$form
| ); - warn ">>> $layout ",length( $html ),"\n"; + warn ">>> ",length( $html ),"\n"; $req->print( $html ); $req->next; - - $f = { $req->params }; } warn "NO WAY OUT!";