/[Frey]/trunk/lib/Continuity/Widget.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Continuity/Widget.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 69 by dpavlin, Wed Jul 9 15:45:59 2008 UTC revision 73 by dpavlin, Wed Jul 9 20:43:48 2008 UTC
# Line 16  Don't quite know what this will be yet. Line 16  Don't quite know what this will be yet.
16    
17  =cut  =cut
18    
19    use Data::Dump qw/dump/;
20    
21  use Data::UUID;  use Data::UUID;
22  use Moose;  use Moose;
23  with 'Continuity::Coro::Moose';  with 'Continuity::Coro::Moose';
# Line 31  has 'uuid'   => ( Line 33  has 'uuid'   => (
33    default => sub { Data::UUID->new->create_str }    default => sub { Data::UUID->new->create_str }
34  );  );
35    
36    has render_as => ( is => 'rw', isa => 'Str', required => 1, default => 'view' );
37    
38  # Given a name generate a unique field ID  # Given a name generate a unique field ID
39  sub field_name {  sub field_name {
40    my ($self, $name) = @_;    my ($self, $name) = @_;
# Line 43  sub render_edit { Line 47  sub render_edit {
47    my $out = '<div class="editform">';    my $out = '<div class="editform">';
48    my %attrmap = %{ $self->meta->get_attribute_map };    my %attrmap = %{ $self->meta->get_attribute_map };
49    while( my ($name, $attr) = each %attrmap ) {    while( my ($name, $attr) = each %attrmap ) {
50            next if $name =~ /^_/;
51      my $reader = $attr->get_read_method;      my $reader = $attr->get_read_method;
52      my $val = $self->$reader || '';      my $val = $self->$reader || '';
53      my $field_name = $self->field_name($name);      my $field_name = $self->field_name($name);
# Line 65  sub render_view { Line 70  sub render_view {
70    my $out = '<div class="view">';    my $out = '<div class="view">';
71    my %attrmap = %{ $self->meta->get_attribute_map };    my %attrmap = %{ $self->meta->get_attribute_map };
72    while( my ($name, $attr) = each %attrmap ) {    while( my ($name, $attr) = each %attrmap ) {
73            #next if $name =~ /^_/;
74      my $reader = $attr->get_read_method;      my $reader = $attr->get_read_method;
75      my $val = $self->$reader || '';      my $val = $self->$reader || '';
76      my $field_name = $self->field_name($name);      my $field_name = $self->field_name($name);
# Line 83  sub render_view { Line 89  sub render_view {
89  }  }
90    
91  sub set_from_hash {  sub set_from_hash {
92    my ($self, $f) = @_;          my ($self, $f, $callback) = @_;
93    my %attrmap = %{ $self->meta->get_attribute_map };          my %attrmap = %{ $self->meta->get_attribute_map };
94    while( my ($name, $attr) = each %attrmap ) {          my $hash;
95      my $field_name = $self->field_name($name);          while( my ($name, $attr) = each %attrmap ) {
96      if(defined $f->{$field_name}) {                  my $field_name = $self->field_name($name);
97        my $writer = $attr->get_write_method;                  if(defined $f->{$field_name}) {
98        $self->$writer($f->{$field_name});                          my $writer = $attr->get_write_method;
99      }                          $self->$writer($f->{$field_name});
100    }                          $hash->{ $name } = $f->{$field_name};
101                    }
102            }
103            warn "# hash = ",dump( $hash );
104            $callback->( $hash ) if defined $hash && defined $callback;
105  }  }
106    
107  sub add_button {  sub add_button {
# Line 127  sub main { Line 137  sub main {
137    $self->renderer->{view} = \&render_view;    $self->renderer->{view} = \&render_view;
138    $self->renderer->{edit} = \&render_edit;    $self->renderer->{edit} = \&render_edit;
139    while(1) {    while(1) {
140      my $out = $self->renderer->{view}->($self);      my $out = $self->renderer->{ $self->render_as }->($self);
141      my $f = $self->next($out);      my $f = $self->next($out);
142      $self->set_from_hash($f);      $self->set_from_hash($f);
143      $self->exec_buttons($f);      $self->exec_buttons($f);

Legend:
Removed from v.69  
changed lines
  Added in v.73

  ViewVC Help
Powered by ViewVC 1.1.26