--- loncom/homework/functionplotresponse.pm 2012/02/28 22:42:31 1.93
+++ loncom/homework/functionplotresponse.pm 2012/02/29 01:46:52 1.95
@@ -1,7 +1,7 @@
# LearningOnline Network with CAPA
# Functionplot responses
#
-# $Id: functionplotresponse.pm,v 1.93 2012/02/28 22:42:31 www Exp $
+# $Id: functionplotresponse.pm,v 1.95 2012/02/29 01:46:52 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -551,6 +551,10 @@ sub start_plotvector {
$label=~s/\W//gs;
$label=ucfirst($label);
unless ($label) { $label="NewVector"; }
+ if ($Apache::functionplotresponse::vectorlabels{$label}) {
+ &Apache::lonxml::warning(&mt('Vector labels must be unique: [_1]',$label));
+ }
+ $Apache::functionplotresponse::vectorlabels{$label}=1;
if ($target eq 'web') {
my ($xmin,$xmax,$ymin,$ymax)=&boundaries($parstack,$safeeval,-3);
unless (defined($tailx)) { $tailx=$xmin; }
@@ -602,6 +606,7 @@ sub start_drawvectorsum {
my $internalid = $Apache::inputtags::part.'_'.$Apache::inputtags::response[-1];
my $tailx=&Apache::lonxml::get_param('tailx',$parstack,$safeeval);
my $taily=&Apache::lonxml::get_param('taily',$parstack,$safeeval);
+ my $showvalue=&Apache::lonxml::get_param('showvalue',$parstack,$safeeval);
my $vectorlist=&Apache::lonxml::get_param('vectorlist',$parstack,$safeeval);
my $label=&Apache::lonxml::get_param('label',$parstack,$safeeval);
$label=~s/\W//gs;
@@ -620,6 +625,10 @@ sub start_drawvectorsum {
$thisvector=~s/\W//gs;
$thisvector=ucfirst($thisvector);
unless ($thisvector) { next; }
+ unless ($Apache::functionplotresponse::vectorlabels{$thisvector}) {
+ &Apache::lonxml::warning(&mt('Vectors must be defined before using them for drawing vector sums: [_1]',$thisvector));
+ next;
+ }
my $vectorx=$thisvector.'X';
my $vectory=$thisvector.'Y';
$result.=(<'.
+ $token,'8').
+ &Apache::edit::select_arg('Show Value:','showvalue',
+ ['yes','no'],$token).'
'.
&Apache::edit::text_arg('Vector List:','vectorlist',
$token,'40').
&Apache::edit::end_row();
} elsif ($target eq 'modified') {
$env{'form.'.&Apache::edit::html_element_name('label')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('label')});
- my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'label','tailx','taily','vectorlist');
+ my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'label','tailx','taily','showvalue','vectorlist');
if ($constructtag) { $result=&Apache::edit::rebuild_tag($token); }
}
return $result;
@@ -1296,6 +1312,8 @@ sub start_functionplotresponse {
undef %Apache::functionplotresponse::previous;
$Apache::functionplotresponse::inputfields='';
$Apache::functionplotresponse::counter=0;
+# Remember vectors
+ undef %Apache::functionplotresponse::vectorlabels;
# Remember rules
undef @Apache::functionplotresponse::functionplotrules;
undef @Apache::functionplotresponse::functionplotvectorrules;