# $Id: Record.pm,v 1.6 2000/07/12 15:03:09 joern Exp $
package NewSpirit::Object::Record;
$VERSION = "0.01";
@ISA = qw( NewSpirit::Object );
use strict;
use Carp;
use NewSpirit::Object;
use NewSpirit::Param1x;
use NewSpirit::DataFile;
use FileHandle;
use Carp;
sub get_data {
my $self = shift;
my $df = new NewSpirit::DataFile ($self->{object_file});
my $data = $df->read;
$df = undef;
return $data;
}
sub edit_ctrl {
my $self = shift;
$self->editor_header ('edit');
print <<__HTML;
__HTML
my $data = $self->get_data;
my $field_order = $self->{record_field_order};
my $field_definition = $self->{record_field_definition};
foreach my $key ( @{$field_order} ) {
$self->input_widget (
name => $key,
info_href => $field_definition->{$key},
data_href => $data
);
}
print <<__HTML;
|
__HTML
$self->editor_footer;
}
sub view_ctrl {
my $self = shift;
$self->view_header;
print <<__HTML;
__HTML
my $df = new NewSpirit::DataFile ($self->{object_file});
my $data = $df->read;
$df = undef;
my $field_order = $self->{record_field_order};
my $field_definition = $self->{record_field_definition};
foreach my $key ( @{$field_order} ) {
$self->input_widget (
read_only => 1,
name => $key,
info_href => $field_definition->{$key},
data_href => $data
);
}
print <<__HTML;
|
__HTML
$self->view_footer;
}
sub save_file {
my $self = shift;
my $q = $self->{q};
# build the data hash
my $field_order = $self->{record_field_order};
my %data;
foreach my $key ( @{$field_order} ) {
$data{$key} = $q->param($key);
$data{$key} =~ s/\r//g;
}
# store the hash
my $df = new NewSpirit::DataFile ($self->{object_file});
$df->write ( \%data );
$df = undef;
return 0; # no project file browser update needed
}
1;