[LON-CAPA-cvs] cvs: loncom /xml lonplot.pm
faziophi
lon-capa-cvs-allow@mail.lon-capa.org
Wed, 19 Mar 2008 21:09:09 -0000
faziophi Wed Mar 19 17:09:09 2008 EDT
Modified files:
/loncom/xml lonplot.pm
Log:
adds dashed linetype capabilities, by adding linetype attribute to curves; also tweaks text descriptions for colorful editor
Index: loncom/xml/lonplot.pm
diff -u loncom/xml/lonplot.pm:1.134 loncom/xml/lonplot.pm:1.135
--- loncom/xml/lonplot.pm:1.134 Sat Jan 19 21:47:06 2008
+++ loncom/xml/lonplot.pm Wed Mar 19 17:09:09 2008
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Dynamic plot
#
-# $Id: lonplot.pm,v 1.134 2008/01/20 02:47:06 raeburn Exp $
+# $Id: lonplot.pm,v 1.135 2008/03/19 21:09:09 faziophi Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -91,6 +91,12 @@
my $max_str_len = 50; # if a label, title, xlabel, or ylabel text
# is longer than this, it will be truncated.
+my %linetypes =
+ (
+ solid => 1,
+ dashed => 0
+ );
+
my %linestyles =
(
lines => 2, # Maybe this will be used in the future
@@ -497,7 +503,7 @@
);
-my @curve_edit_order = ('color','name','linestyle','linewidth','pointtype','pointsize','limit');
+my @curve_edit_order = ('color','name','linestyle','linewidth','linetype','pointtype','pointsize','limit');
my %curve_defaults =
(
@@ -518,37 +524,44 @@
linestyle => {
default => 'lines',
test => $linestyle_test,
- description => 'Line style',
+ description => 'Plot with:',
edit_type => 'choice',
choices => [keys(%linestyles)]
},
linewidth => {
default => 1,
test => $int_test,
- description => 'Line width (may not apply to all line styles)',
+ description => 'Line width (may not apply to all plot styles)',
edit_type => 'choice',
choices => [1,2,3,4,5,6,7,8,9,10]
},
+ linetype => {
+ default => 'solid',
+ test => sub {$_[0]=~/^(solid|dashed)$/},
+ description => 'Line type (may not apply to all plot styles)',
+ edit_type => 'choice',
+ choices => ['solid', 'dashed']
+ },
pointsize => {
default => 1,
test => $pos_real_test,
- description => 'Point size (may not apply to all line styles)',
+ description => 'Point size (may not apply to all plot styles)',
edit_type => 'entry',
size => '5'
},
pointtype => {
default => 1,
test => $int_test,
- description => 'Point type (may not apply to all line styles)',
+ description => 'Point type (may not apply to all plot styles)',
edit_type => 'choice',
choices => [0,1,2,3,4,5,6]
},
limit => {
default => 'closed',
- test => sub {$_[0]=~/^(closed|x1|x2|y1|y2)$/},
+ test => sub {$_[0]=~/^(above|below|closed|x1|x2|y1|y2)$/},
description => 'Point to fill -- for filledcurves',
edit_type => 'choice',
- choices => ['closed','x1','x2','y1','y2']
+ choices => ['above', 'below', 'closed','x1','x2','y1','y2']
},
);
@@ -1464,6 +1477,14 @@
$gnuplot_input.=' pointsize '.$curve->{'pointsize'};
} elsif ($curve->{'linestyle'} eq 'filledcurves') {
$gnuplot_input.= ' '.$curve->{'limit'};
+ } elsif ($curve->{'linetype'} ne '' &&
+ $curve->{'linestyle'} eq 'lines') {
+ $gnuplot_input.= ' linetype ';
+ $gnuplot_input.= $linetypes{$curve->{'linetype'}};
+ $gnuplot_input.= ' linecolor rgb "';
+ # convert color from xaaaaaa to #aaaaaa
+ $curve->{'color'} =~ s/x/#/;
+ $gnuplot_input.= $curve->{'color'}.'"';
}
$gnuplot_input.= ' linewidth '.$curve->{'linewidth'};
@@ -1500,8 +1521,16 @@
$gnuplot_input.=' pointsize '.$curve->{'pointsize'};
} elsif ($curve->{'linestyle'} eq 'filledcurves') {
$gnuplot_input.= ' '.$curve->{'limit'};
+ } elsif ($curve->{'linetype'} ne '' &&
+ $curve->{'linestyle'} eq 'lines') {
+ $gnuplot_input.= ' linetype ';
+ $gnuplot_input.= $linetypes{$curve->{'linetype'}};
+ $gnuplot_input.= ' linecolor rgb "';
+ # convert color from xaaaaaa to #aaaaaa
+ $curve->{'color'} =~ s/x/#/;
+ $gnuplot_input.= $curve->{'color'}.'"';
}
- $gnuplot_input.= ' linewidth '.$curve->{'linewidth'};
+ $gnuplot_input.= ' linewidth '.$curve->{'linewidth'};
}
}
# Write the output to a file.