--- 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