--- loncom/xml/lonplot.pm 2002/01/30 13:27:51 1.46 +++ loncom/xml/lonplot.pm 2002/02/05 15:05:44 1.47 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Dynamic plot # -# $Id: lonplot.pm,v 1.46 2002/01/30 13:27:51 matthew Exp $ +# $Id: lonplot.pm,v 1.47 2002/02/05 15:05:44 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -40,7 +40,7 @@ use Apache::lonxml; use Apache::edit; BEGIN { - &Apache::lonxml::register('Apache::lonplot',('plot')); + &Apache::lonxml::register('Apache::lonplot',('gnuplot')); } ## @@ -113,9 +113,9 @@ my $words_test = sub {$_[0]=~s/\s+/ ## Attribute metadata ## ## ## ################################################################### -my @plot_edit_order = +my @gnuplot_edit_order = qw/bgcolor fgcolor height width font transparent grid border align/; -my %plot_defaults = +my %gnuplot_defaults = ( height => { default => 200, @@ -339,7 +339,7 @@ my %curve_defaults = ################################################################### my (%plot,%key,%axis,$title,$xlabel,$ylabel,@labels,@curves,%xtics,%ytics); -sub start_plot { +sub start_gnuplot { %plot = (); %key = (); %axis = (); $title = undef; $xlabel = undef; $ylabel = undef; $#labels = -1; $#curves = -1; @@ -352,18 +352,18 @@ sub start_plot { 'xtics','ytics')); push (@Apache::lonxml::namespace,'lonplot'); if ($target eq 'web') { - my $inside = &Apache::lonxml::get_all_text("/plot",$$parser[-1]); + my $inside = &Apache::lonxml::get_all_text("/gnuplot",$$parser[-1]); $inside=&Apache::run::evaluate($inside,$safeeval,$$parstack[-1]); &Apache::lonxml::newparser($parser,\$inside); - &get_attributes(\%plot,\%plot_defaults,$parstack,$safeeval, + &get_attributes(\%plot,\%gnuplot_defaults,$parstack,$safeeval, $tagstack->[-1]); } elsif ($target eq 'edit') { - $result .= &Apache::edit::tag_start($target,$token,'Plot'); - $result .= &edit_attributes($target,$token,\%plot_defaults, - \@plot_edit_order); + $result .= &Apache::edit::tag_start($target,$token,'GnuPlot'); + $result .= &edit_attributes($target,$token,\%gnuplot_defaults, + \@gnuplot_edit_order); } elsif ($target eq 'modified') { my $constructtag=&Apache::edit::get_new_args - ($token,$parstack,$safeeval,keys(%plot_defaults)); + ($token,$parstack,$safeeval,keys(%gnuplot_defaults)); if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); } @@ -371,9 +371,8 @@ sub start_plot { return $result; } -sub end_plot { +sub end_gnuplot { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; - pop @Apache::lonxml::namespace; &Apache::lonxml::deregister('Apache::lonplot', ('title','xlabel','ylabel','key','axis','label','curve')); @@ -393,7 +392,7 @@ sub end_plot { width = "$plot{'width'}" height = "$plot{'height'}" align = "$plot{'align'}" - alt = "/cgi-bin/plot.gif?$filename" /> + alt = "image should be /cgi-bin/plot.gif?$filename" /> ENDIMAGE } elsif ($target eq 'edit') { $result.=&Apache::edit::tag_end($target,$token); @@ -962,7 +961,7 @@ sub write_gnuplot_file { sub check_inputs { ## Note: no inputs, no outputs - this acts only on global variables. ## Make sure we have all the input we need: - if (! %plot) { &set_defaults(\%plot,\%plot_defaults); } + if (! %plot) { &set_defaults(\%plot,\%gnuplot_defaults); } if (! %key ) {} # No key for this plot, thats okay # if (! %axis) { &set_defaults(\%axis,\%axis_defaults); } if (! defined($title )) {} # No title for this plot, thats okay @@ -1018,16 +1017,15 @@ sub edit_attributes { ## ## ################################################################### -#------------------------------------------------ insert_xxxxxxx -sub insert_plot { +sub insert_gnuplot { my $result = ''; # plot attributes $result .= "{'default'}\"\n"; + foreach my $attr (keys(%gnuplot_defaults)) { + $result .= " $attr=\"$gnuplot_defaults{$attr}->{'default'}\"\n"; } $result .= ">\n"; - # Add the components + # Add the components (most are commented out for simplicity) # $result .= &insert_key(); # $result .= &insert_axis(); # $result .= &insert_title();