--- trunk/lib/Frey/Web/Item.pm 2008/07/14 23:39:56 128 +++ trunk/lib/Frey/Web/Item.pm 2008/07/14 23:44:18 129 @@ -3,8 +3,8 @@ use Data::Dump qw/dump/; use Carp qw/carp/; -use Moose; -extends 'Frey::Web::Button'; +use Moose::Role; +with 'Frey::Web::Field'; #with 'BonusTypes'; use Moose::Util::TypeConstraints; @@ -74,14 +74,19 @@ # my $reader = $attr->get_read_method; # my $val = $self->$reader || ''; foreach my $name ( @{ $self->display_columns } ) { - my $field_name = $self->field_name($name); - my $val; - $val = $self->fey->$name if $self->fey && $self->fey->can($name); - $out .= $iterator->( $name, $field_name, ucfirst($name), $val ) || ''; # || '' to shut warnings + $out .= $self->render_field( $name, $iterator ) } return $out; } +sub render_field { + my ($self, $name, $iterator) = @_; + my $field_name = $self->field_name($name); + my $val; + $val = $self->fey->$name if $self->fey && $self->fey->can($name); + $iterator->( $name, $field_name, ucfirst($name), $val ) || ''; # || '' to shut warnings +} + sub main { my ( $self ) = @_; @@ -101,7 +106,7 @@ warn ">>> ",length($out),"\n"; my $f = $self->next($out); $self->set_from_hash($f); - $self->exec_buttons($f); + $self->exec_callbacks($f); } }; @@ -136,7 +141,7 @@ |; }); - return qq|$out| . $self->render_buttons . qq|| if $self->layout eq 'columns'; + return qq|$out| . $self->render_callbacks . qq|| if $self->layout eq 'columns'; $self->render_wrapper_class( $out, 'editform' ); } @@ -159,7 +164,7 @@ |; }); - return qq|$out| . $self->render_buttons . qq|| if $self->layout eq 'columns'; + return qq|$out| . $self->render_callbacks . qq|| if $self->layout eq 'columns'; $self->render_wrapper_class( $out, 'view' ); } @@ -170,8 +175,8 @@ return ''; } $out =~ s/^\t+//mg; # XXX compress output - return $out . qq|| . $self->render_buttons . qq|| if $self->layout eq 'table'; - return qq|
| . $out . $self->render_buttons . qq|
|; + return $out . qq|| . $self->render_callbacks . qq|| if $self->layout eq 'table'; + return qq|
| . $out . $self->render_callbacks . qq|
|; } sub _build_display_columns {