version 1.14, 2001/12/21 16:59:01
|
version 1.16, 2001/12/21 21:39:51
|
Line 71 my $int_test = sub {$_[0]=~s/\s+//
|
Line 71 my $int_test = sub {$_[0]=~s/\s+//
|
my $real_test = sub {$_[0]=~s/\s+//g;$_[0]=~/^[+-]?\d*\.?\d*$/}; |
my $real_test = sub {$_[0]=~s/\s+//g;$_[0]=~/^[+-]?\d*\.?\d*$/}; |
my $color_test = sub {$_[0]=~s/\s+//g;$_[0]=~/^x[\da-f]{6}$/}; |
my $color_test = sub {$_[0]=~s/\s+//g;$_[0]=~/^x[\da-f]{6}$/}; |
my $onoff_test = sub {$_[0]=~/^(on|off)$/}; |
my $onoff_test = sub {$_[0]=~/^(on|off)$/}; |
my $key_pos_test = sub {$_[0]=~/^(top|bottom|right|left|outside|below)+$/}; |
my $key_pos_test = sub {$_[0]=~/^(top|bottom|right|left|outside|below| )+$/}; |
my $sml_test = sub {$_[0]=~/^(small|medium|large)$/}; |
my $sml_test = sub {$_[0]=~/^(small|medium|large)$/}; |
my $linestyle_test = sub {$_[0]=~/^(lines|linespoints|dots|points|steps)$/}; |
my $linestyle_test = sub {$_[0]=~/^(lines|linespoints|dots|points|steps)$/}; |
my $words_test = sub {$_[0]=~s/\s+/ /g;$_[0]=~/^(\w+ ?)+$/}; |
my $words_test = sub {$_[0]=~s/\s+/ /g;$_[0]=~/^([\w\(\)]+ ?)+$/}; |
## |
## |
## Default values for attributes of elements |
## Default values for attributes of elements |
## |
## |
Line 87 my %plot_defaults =
|
Line 87 my %plot_defaults =
|
transparent => {default => 'off', test => $onoff_test }, |
transparent => {default => 'off', test => $onoff_test }, |
grid => {default => 'off', test => $onoff_test }, |
grid => {default => 'off', test => $onoff_test }, |
border => {default => 'on', test => $onoff_test }, |
border => {default => 'on', test => $onoff_test }, |
font => {default => 'medium', test => $sml_test } |
font => {default => 'medium', test => $sml_test }, |
|
align => {default => 'left', test => $words_test } |
); |
); |
|
|
my %key_defaults = |
my %key_defaults = |
Line 111 my %axis_defaults =
|
Line 112 my %axis_defaults =
|
xmin => {default => '-10.0', test => $real_test }, |
xmin => {default => '-10.0', test => $real_test }, |
xmax => {default => ' 10.0', test => $real_test }, |
xmax => {default => ' 10.0', test => $real_test }, |
ymin => {default => '-10.0', test => $real_test }, |
ymin => {default => '-10.0', test => $real_test }, |
ymax => {default => ' 10.0', test => $real_test } |
ymax => {default => ' 10.0', test => $real_test }, |
|
linestyle => {default => 'points', test => $linestyle_test} |
); |
); |
|
|
my %curve_defaults = |
my %curve_defaults = |
Line 186 sub end_plot {
|
Line 188 sub end_plot {
|
close($fh); |
close($fh); |
## return image tag for the plot |
## return image tag for the plot |
$result .= <<"ENDIMAGE"; |
$result .= <<"ENDIMAGE"; |
<img src = "/cgi-bin/plot.gif?$filename" |
<img src = "/cgi-bin/plot.gif?$filename" |
alt = "/cgi-bin/plot.gif?$filename" /> |
width = "$plot{'width'}" |
|
height = "$plot{'height'}" |
|
align = "$plot{'align'}" |
|
alt = "/cgi-bin/plot.gif?$filename" /> |
ENDIMAGE |
ENDIMAGE |
} |
} |
return $result; |
return $result; |
Line 359 sub start_data {
|
Line 364 sub start_data {
|
delete($curves[-1]->{'function'}); |
delete($curves[-1]->{'function'}); |
} |
} |
my $datatext = &Apache::lonxml::get_all_text("/data",$$parser[-1]); |
my $datatext = &Apache::lonxml::get_all_text("/data",$$parser[-1]); |
$datatext =~ s/\s+//g; # No whitespace, numbers must be seperated |
$datatext =~ s/\s+/ /g; # No whitespace, numbers must be seperated |
# by commas |
# by commas |
if ($datatext !~ /^(([+-]?\d*\.?\d*)[, ]?)+$/) { |
if ($datatext !~ /^(([+-]?\d*\.?\d*)[, ]?)+$/) { |
&Apache::lonxml::warning('Malformed data: '.$datatext); |
&Apache::lonxml::warning('Malformed data: '.$datatext); |
Line 368 sub start_data {
|
Line 373 sub start_data {
|
# Need to do some error checking on the @data array - |
# Need to do some error checking on the @data array - |
# make sure it's all numbers and make sure each array |
# make sure it's all numbers and make sure each array |
# is of the same length. |
# is of the same length. |
my @data = split /,/,$datatext; |
my @data; |
|
if ($datatext =~ /,/) { |
|
@data = split /,/,$datatext; |
|
} else { # Assume it's space seperated. |
|
@data = split / /,$datatext; |
|
} |
for (my $i=0;$i<=$#data;$i++) { |
for (my $i=0;$i<=$#data;$i++) { |
# Check that it's non-empty |
# Check that it's non-empty |
# Check that it's a number |
# Check that it's a number |
Line 432 sub get_attributes{
|
Line 442 sub get_attributes{
|
my $attr; |
my $attr; |
foreach $attr (keys %{$defaults}) { |
foreach $attr (keys %{$defaults}) { |
$values->{$attr} = |
$values->{$attr} = |
&Apache::lonxml::get_param($attr,$parstack,$safeeval); |
&Apache::lonxml::get_param($attr,$parstack,$safeeval); |
if ($values->{$attr} eq '' | !defined($values->{$attr})) { |
if ($values->{$attr} eq '' | !defined($values->{$attr})) { |
$values->{$attr} = $defaults->{$attr}->{'default'}; |
$values->{$attr} = $defaults->{$attr}->{'default'}; |
next; |
next; |
Line 447 sub get_attributes{
|
Line 457 sub get_attributes{
|
} |
} |
return ; |
return ; |
} |
} |
|
##------------------------------------------------------- write_gnuplot_file |
sub write_gnuplot_file { |
sub write_gnuplot_file { |
my $gnuplot_input = ''; |
my $gnuplot_input = ''; |
my $curve; |
my $curve; |
Line 456 sub write_gnuplot_file {
|
Line 466 sub write_gnuplot_file {
|
push @Colors, $plot{'bgcolor'}; |
push @Colors, $plot{'bgcolor'}; |
push @Colors, $plot{'fgcolor'}; |
push @Colors, $plot{'fgcolor'}; |
push @Colors, (defined($axis{'color'})?$axis{'color'}:$plot{'fgcolor'}); |
push @Colors, (defined($axis{'color'})?$axis{'color'}:$plot{'fgcolor'}); |
push @Colors, $Colors[-1]; # Redundancy |
|
foreach $curve (@curves) { |
foreach $curve (@curves) { |
push @Colors, ($curve->{'color'} ne '' ? |
push @Colors, ($curve->{'color'} ne '' ? |
$curve->{'color'} : |
$curve->{'color'} : |