--- trunk/lib/Continuity/Widget.pm 2008/07/09 20:43:48 73 +++ trunk/lib/Continuity/Widget.pm 2008/07/10 10:33:04 79 @@ -41,6 +41,25 @@ return $self->uuid . '-' . $name; } +sub render_iterator { + my ($self, $before, $iterator, $after) = @_; + my %attrmap = %{ $self->meta->get_attribute_map }; + my $middle; + while( my ($name, $attr) = each %attrmap ) { + my $reader = $attr->get_read_method; + my $val = $self->$reader || ''; + my $field_name = $self->field_name($name); + $middle .= $iterator->( $name, $field_name, $attr->label, $val ) || ''; + } + if ( $middle ) { + return $before . $middle . $self->render_buttons . $after; + } else { + warn "iterator didn't produce output, skipping"; + return ""; + } +} + + # This renders an input form. Need to make the renderer selection dynamic sub render_edit { my ($self) = @_;