--- trunk/lib/Frey/Web/Button.pm 2008/07/11 12:47:50 96 +++ trunk/lib/Frey/Web/Button.pm 2008/07/11 17:53:08 98 @@ -17,47 +17,18 @@ =cut use Data::Dump qw/dump/; -use Data::UUID; use Moose; -with 'Frey::Web::Coro'; +with 'Frey::Web::Field'; # List of callbacks, buttons for now has callback => ( is => 'rw', default => sub {{}} ); has callback_order => ( is => 'rw', isa => 'ArrayRef', default => sub { [] }); -has 'uuid' => ( - is => 'ro', - isa => 'Str', - default => sub { Data::UUID->new->create_str } -); - -# Given a name generate a unique field ID -sub field_name { - my ($self, $name) = @_; - return $self->uuid . '-' . $name; -} - -sub set_from_hash { - my ($self, $f) = @_; - my %attrmap = %{ $self->meta->get_attribute_map }; - my $hash; - while( my ($name, $attr) = each %attrmap ) { - my $field_name = $self->field_name($name); - if(defined $f->{$field_name}) { - my $writer = $attr->get_write_method; - $self->$writer($f->{$field_name}); - $hash->{ $name } = $f->{$field_name}; - } - } - warn "# set_from_hash ", $self->uuid," produced hash = ",dump( $hash ) if $hash; - return $hash; -} - sub add_button { - my ($self, $name, $callback) = @_; - $self->callback->{$name} = $callback; - push @{ $self->callback_order }, $name; - warn "## callback_order = ",dump( $self->callback_order ); + my ($self, $name, $callback) = @_; + $self->callback->{$name} = $callback; + push @{ $self->callback_order }, $name; + warn "## callback_order = ",dump( $self->callback_order ); } sub remove_button { @@ -77,25 +48,23 @@ } sub render_buttons { - my ($self) = @_; - my $out = ''; - foreach my $name ( @{ $self->callback_order } ) { - my $btn_name = $self->field_name($name); - $out .= qq{ - - }; - } - return $out; + my ($self) = @_; + my $out = ''; + foreach my $name ( @{ $self->callback_order } ) { + my $btn_name = $self->field_name($name); + $out .= qq||; + } + return $out; } sub exec_buttons { - my ($self, $f) = @_; - foreach my $name (keys %{$self->callback}) { - my $btn_name = $self->field_name($name); - if($f->{$btn_name}) { - $self->callback->{$name}->($f); - } - } + my ($self, $f) = @_; + foreach my $name (keys %{$self->callback}) { + my $btn_name = $self->field_name($name); + if($f->{$btn_name}) { + $self->callback->{$name}->($f); + } + } } =head1 SEE ALSO