--- trunk/lib/Frey/ObjectDesigner.pm 2008/07/14 21:45:59 123
+++ trunk/lib/Frey/ObjectDesigner.pm 2008/07/16 21:23:27 149
@@ -12,65 +12,51 @@
use Data::Dump qw/dump/;
-use Frey::Web::Item;
+use Frey::Web::Design;
use Frey::Web::Links;
+use Frey::Request;
sub html {
my ( $self, $req ) = @_;
- my $f = { $req->params };
- my $layout = delete( $f->{layout} ) || 'div';
+ $self->add_css( 'static/form.css' );
+
+ my $pager;
+ my $items = 0;
while ( 1 ) {
-
+ $Frey::Request::current = $req;
+ 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::Item->new( fey_class => $self->fey_class, layout => $layout, render_as => 'edit' );
-
- my $form = $w->process($f);
-
- $form = qq|
| 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||;
- }
-
- my $layout_picker =
- qq|layout: | .
- Frey::Web::Links->new(
- name => 'layout',
- current => $layout,
- values => [ 'div', 'table', 'columns' ],
- )->links .
- qq|
|
- ;
-
- $self->add_css( 'static/form.css' );
+ $pager ||= Frey::Pager->new(
+ fey_class => $self->fey_class,
+ item_constructor => sub {
+ $items++;
+ warn "item_constructor $items";
+ return Frey::Web::Design->new( fey_class => $self->fey_class, @_ ) if $items < 4;
+ return Frey::Web::Item->new( fey_class => $self->fey_class, @_ );
+ },
+ ) if ! $pager;
+
+ $pager->pager->entries_per_page( 5 );
+ $pager->update_collection;
+
+ my $form = $pager->items_in_layout( $f );
+ # we should use first_item here to get edit fields for labels
+ $form = $pager->first_item->render_table_wrapper( $form );
my $html = $self->page(
body => '' . $self->fey_class . '
'
- . $layout_picker
- . qq||
+ . $pager->first_item->layout_picker # FIXME
+ . qq|Showing $items items from collection|
+ . qq||
);
- warn ">>> $layout ",length( $html ),"\n";
+ warn ">>> ",length( $html ),"\n";
$req->print( $html );
$req->next;
-
- $f = { $req->params };
}
warn "NO WAY OUT!";