--- trunk/lib/Continuity/Widget.pm 2008/07/09 15:45:59 69 +++ trunk/lib/Continuity/Widget.pm 2008/07/09 16:36:21 70 @@ -16,6 +16,8 @@ =cut +use Data::Dump qw/dump/; + use Data::UUID; use Moose; with 'Continuity::Coro::Moose'; @@ -43,6 +45,7 @@ my $out = '
'; my %attrmap = %{ $self->meta->get_attribute_map }; while( my ($name, $attr) = each %attrmap ) { + next if $name =~ /^_/; my $reader = $attr->get_read_method; my $val = $self->$reader || ''; my $field_name = $self->field_name($name); @@ -65,6 +68,7 @@ my $out = '
'; my %attrmap = %{ $self->meta->get_attribute_map }; while( my ($name, $attr) = each %attrmap ) { + #next if $name =~ /^_/; my $reader = $attr->get_read_method; my $val = $self->$reader || ''; my $field_name = $self->field_name($name); @@ -83,15 +87,19 @@ } sub set_from_hash { - my ($self, $f) = @_; - my %attrmap = %{ $self->meta->get_attribute_map }; - 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}); - } - } + my ($self, $f, $callback) = @_; + 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 "# hash = ",dump( $hash ); + $callback->( $hash ) if defined $hash && defined $callback; } sub add_button {