--- loncom/xml/lonplot.pm	2002/01/09 16:58:18	1.36
+++ loncom/xml/lonplot.pm	2002/01/11 16:34:06	1.39
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Dynamic plot
 #
-# $Id: lonplot.pm,v 1.36 2002/01/09 16:58:18 matthew Exp $
+# $Id: lonplot.pm,v 1.39 2002/01/11 16:34:06 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -119,32 +119,36 @@ my $words_test     = sub {$_[0]=~s/\s+/
 ##                                                               ##
 ###################################################################
 my @plot_edit_order = 
-    qw/bgcolor fgcolor height width font transparent grid border/;
+    qw/bgcolor fgcolor height width font transparent grid border align/;
 my %plot_defaults = 
     (
      height       => {
 	 default     => 200,
 	 test        => $int_test,
 	 description => 'height of image (pixels)',
-	 edit_type   => 'entry' 
+      	 edit_type   => 'entry',
+	 size        => '10'
 	 },
      width        => {
 	 default     => 200,
 	 test        => $int_test,
 	 description => 'width of image (pixels)',
-	 edit_type   => 'entry'
+	 edit_type   => 'entry',
+	 size        => '10'
 	 },
      bgcolor      => {
 	 default     => 'xffffff',
 	 test        => $color_test, 
 	 description => 'background color of image (xffffff)',
-	 edit_type   => 'entry'
+	 edit_type   => 'entry',
+	 size        => '10'
 	 },
      fgcolor      => {
 	 default     => 'x000000',
 	 test        => $color_test,
 	 description => 'foreground color of image (x000000)',
-	 edit_type   => 'entry' 
+	 edit_type   => 'entry',
+	 size        => '10'
 	 },
      transparent  => {
 	 default     => 'off',
@@ -186,7 +190,8 @@ my %key_defaults =
 	 default => '',
 	 test => $words_test,
 	 description => 'Title of key',
-	 edit_type   => 'entry'
+	 edit_type   => 'entry',
+	 size        => '40'
 	 },
      box   => { 
 	 default => 'off',
@@ -210,13 +215,15 @@ my %label_defaults =
 	 default => 0,
 	 test => $real_test,
 	 description => 'x position of label (graph coordinates)',
-	 edit_type   => 'entry'
+	 edit_type   => 'entry',
+	 size        => '10'
 	 },
      ypos    => {
 	 default => 0, 
 	 test => $real_test,
 	 description => 'y position of label (graph coordinates)',
-	 edit_type   => 'entry'
+	 edit_type   => 'entry',
+	 size        => '10'
 	 },
      justify => {
 	 default => 'left',    
@@ -233,31 +240,36 @@ my %axis_defaults =
 	 default => 'x000000', 
 	 test => $color_test,
 	 description => 'color of axes (x000000)',
-	 edit_type   => 'entry'
+	 edit_type   => 'entry',
+	 size        => '10'
 	 },
      xmin      => {
 	 default => '-10.0',
 	 test => $real_test,
 	 description => 'minimum x-value shown in plot',
-	 edit_type   => 'entry'
+	 edit_type   => 'entry',
+	 size        => '10'
 	 },
      xmax      => {
 	 default => ' 10.0',
 	 test => $real_test,
 	 description => 'maximum x-value shown in plot',	 
-	 edit_type   => 'entry'
+	 edit_type   => 'entry',
+	 size        => '10'
 	 },
      ymin      => {
 	 default => '-10.0',
 	 test => $real_test,
 	 description => 'minimum y-value shown in plot',	 
-	 edit_type   => 'entry'
+	 edit_type   => 'entry',
+	 size        => '10'
 	 },
      ymax      => {
 	 default => ' 10.0',
 	 test => $real_test,
 	 description => 'maximum y-value shown in plot',	 
-	 edit_type   => 'entry'
+	 edit_type   => 'entry',
+	 size        => '10'
 	 }
      );
 
@@ -267,24 +279,22 @@ my %curve_defaults =
 	 default => 'x000000',
 	 test => $color_test,
 	 description => 'color of curve (x000000)',
-	 edit_type   => 'entry'
+	 edit_type   => 'entry',
+	 size        => '10'
 	 },
      name      => {
 	 default => '',
 	 test => $words_test,
 	 description => 'name of curve to appear in key',
-	 edit_type   => 'entry'
+	 edit_type   => 'entry',
+	 size        => '20'
 	 },
      linestyle => {
 	 default => 'lines',
 	 test => $linestyle_test,
 	 description => 'Line style',
 	 edit_type   => 'choice',
-	 choices     => ['lines','linespoints','dots','points','steps',
-			 'fsteps','histeps','errorbars','xerrorbars',
-			 'yerrorbars','xyerrorbars','boxes','boxerrorbars',
-			 'boxxyerrorbars','financebars','candlesticks',
-			 'vector']
+	 choices     => [keys(%linestyles)]
 	 }
      );
 
@@ -320,7 +330,6 @@ sub start_plot {
 	    ($token,$parstack,$safeeval,keys(%plot_defaults));
 	if ($constructtag) {
 	    $result = &Apache::edit::rebuild_tag($token);
-#	    $result.= &Apache::edit::handle_insert();
 	}
     }
     return $result;
@@ -401,7 +410,8 @@ sub start_title {
     } elsif ($target eq 'edit') {
 	$result.=&Apache::edit::tag_start($target,$token,'Plot Title');
 	my $text=&Apache::lonxml::get_all_text("/title",$$parser[-1]);
-	$result.='</td></tr><tr><td colspan="3">'.
+	$result.=&Apache::edit::end_row().
+	    &Apache::edit::start_spanning_row().
 	    &Apache::edit::editfield('',$text,'',60,1);
     } elsif ($target eq 'modified') {
 	my $text=$$parser[-1]->get_text("/title");
@@ -431,7 +441,8 @@ sub start_xlabel {
     } elsif ($target eq 'edit') {
 	$result.=&Apache::edit::tag_start($target,$token,'Plot Xlabel');
 	my $text=&Apache::lonxml::get_all_text("/xlabel",$$parser[-1]);
-	$result.='</td></tr><tr><td colspan="3">'.
+	$result.=&Apache::edit::end_row().
+	    &Apache::edit::start_spanning_row().
 	    &Apache::edit::editfield('',$text,'',60,1);
     } elsif ($target eq 'modified') {
 	my $text=$$parser[-1]->get_text("/xlabel");
@@ -462,7 +473,8 @@ sub start_ylabel {
     } elsif ($target eq 'edit') {
 	$result .= &Apache::edit::tag_start($target,$token,'Plot Ylabel');
 	my $text = &Apache::lonxml::get_all_text("/ylabel",$$parser[-1]);
-	$result .= '</td></tr><tr><td colspan="3">'.
+	$result .= &Apache::edit::end_row().
+	    &Apache::edit::start_spanning_row().
 	    &Apache::edit::editfield('',$text,'',60,1);
     } elsif ($target eq 'modified') {
 	my $text=$$parser[-1]->get_text("/ylabel");
@@ -497,7 +509,8 @@ sub start_label {
 	$result .= &Apache::edit::tag_start($target,$token,'Plot Label');
 	$result .= &edit_attributes($target,$token,\%label_defaults);
 	my $text = &Apache::lonxml::get_all_text("/label",$$parser[-1]);
-	$result .= '</td></tr><tr><td colspan="3">'.
+	$result .= &Apache::edit::end_row().
+	    &Apache::edit::start_spanning_row().
 	    &Apache::edit::editfield('',$text,'',60,1);
     } elsif ($target eq 'modified') {
 	my $constructtag=&Apache::edit::get_new_args
@@ -571,9 +584,10 @@ sub start_function {
 	$curves[-1]->{'function'} = 
 	    &Apache::lonxml::get_all_text("/function",$$parser[-1]);
     } elsif ($target eq 'edit') {
-	$result .= &Apache::edit::tag_start($target,$token,'Curve Function');
+	$result .= &Apache::edit::tag_start($target,$token,'Gnuplot compatible curve function');
 	my $text = &Apache::lonxml::get_all_text("/function",$$parser[-1]);
-	$result .= '</td></tr><tr><td colspan="3">'.
+	$result .= &Apache::edit::end_row().
+	    &Apache::edit::start_spanning_row().
 	    &Apache::edit::editfield('',$text,'',60,1);
     } elsif ($target eq 'modified') {
 	# Why do I do this?
@@ -640,9 +654,10 @@ sub start_data {
 	}
 	push  @{$curves[-1]->{'data'}},\@data;
     } elsif ($target eq 'edit') {
-	$result .= &Apache::edit::tag_start($target,$token,'Curve Data');
+	$result .= &Apache::edit::tag_start($target,$token,'Comma or space deliminated curve data');
 	my $text = &Apache::lonxml::get_all_text("/data",$$parser[-1]);
-	$result .= '</td></tr><tr><td colspan="3">'.
+	$result .= &Apache::edit::end_row().
+	    &Apache::edit::start_spanning_row().
 	    &Apache::edit::editfield('',$text,'',60,1);
     } elsif ($target eq 'modified') {
 	my $text=$$parser[-1]->get_text("/data");
@@ -848,7 +863,8 @@ sub edit_attributes {
 	$description .= ' ' if ($description !~ / $/);
 	if ($defaults->{$attr}->{'edit_type'} eq 'entry') {
 	    $result .= &Apache::edit::text_arg
-		($description,$attr,$token);
+		($description,$attr,$token,
+		 $defaults->{$attr}->{'size'});
 	} elsif ($defaults->{$attr}->{'edit_type'} eq 'choice') {
 	    $result .= &Apache::edit::select_arg
 		($description,$attr,$defaults->{$attr}->{'choices'},$token);