version 1.75, 2011/11/19 13:45:36
|
version 1.76, 2011/11/19 20:03:58
|
Line 35 use Apache::run;
|
Line 35 use Apache::run;
|
|
|
BEGIN { |
BEGIN { |
&Apache::lonxml::register('Apache::functionplotresponse',('functionplotresponse','backgroundplot','spline', |
&Apache::lonxml::register('Apache::functionplotresponse',('functionplotresponse','backgroundplot','spline', |
'plotobject','plotvector','functionplotvectorrule', |
'plotobject','plotvector','functionplotvectorrule','functionplotvectorsumrule', |
'functionplotrule','functionplotruleset', |
'functionplotrule','functionplotruleset', |
'functionplotelements')); |
'functionplotelements')); |
} |
} |
Line 509 sub start_plotobject {
|
Line 509 sub start_plotobject {
|
$token,'8'). |
$token,'8'). |
&Apache::edit::end_row(); |
&Apache::edit::end_row(); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
$env{'form.'.&Apache::edit::html_element_name('label')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('label')}); |
$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','x','y'); |
my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'label','x','y'); |
if ($constructtag) { $result=&Apache::edit::rebuild_tag($token); } |
if ($constructtag) { $result=&Apache::edit::rebuild_tag($token); } |
} |
} |
Line 564 sub start_plotvector {
|
Line 564 sub start_plotvector {
|
|
|
&Apache::edit::end_row(); |
&Apache::edit::end_row(); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
$env{'form.'.&Apache::edit::html_element_name('label')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('label')}); |
$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','tipx','tipy'); |
my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,'label','tailx','taily','tipx','tipy'); |
if ($constructtag) { $result=&Apache::edit::rebuild_tag($token); } |
if ($constructtag) { $result=&Apache::edit::rebuild_tag($token); } |
} |
} |
Line 780 sub start_functionplotvectorrule {
|
Line 780 sub start_functionplotvectorrule {
|
my $vector=&Apache::lonxml::get_param('vector',$parstack,$safeeval); |
my $vector=&Apache::lonxml::get_param('vector',$parstack,$safeeval); |
$vector=~s/\W//gs; |
$vector=~s/\W//gs; |
$vector=ucfirst($vector); |
$vector=ucfirst($vector); |
|
|
|
my $attachpoint=&Apache::lonxml::get_param('attachpoint',$parstack,$safeeval); |
|
$attachpoint=~s/\W//gs; |
|
$attachpoint=ucfirst($attachpoint); |
|
|
|
my $notattachpoint=&Apache::lonxml::get_param('notattachpoint',$parstack,$safeeval); |
|
$notattachpoint=~s/\W//gs; |
|
$notattachpoint=ucfirst($notattachpoint); |
|
|
my $tailpoint=&Apache::lonxml::get_param('tailpoint',$parstack,$safeeval); |
my $tailpoint=&Apache::lonxml::get_param('tailpoint',$parstack,$safeeval); |
$tailpoint=~s/\W//gs; |
$tailpoint=~s/\W//gs; |
$tailpoint=ucfirst($tailpoint); |
$tailpoint=ucfirst($tailpoint); |
Line 796 sub start_functionplotvectorrule {
|
Line 805 sub start_functionplotvectorrule {
|
|
|
push(@Apache::functionplotresponse::functionplotvectorrules,join(':',( |
push(@Apache::functionplotresponse::functionplotvectorrules,join(':',( |
$label, |
$label, |
|
'vector', |
$vector, |
$vector, |
|
$attachpoint, |
|
$notattachpoint, |
$tailpoint, |
$tailpoint, |
$tippoint, |
$tippoint, |
$nottailpoint, |
$nottailpoint, |
Line 812 sub start_functionplotvectorrule {
|
Line 824 sub start_functionplotvectorrule {
|
$token,'10').' '. |
$token,'10').' '. |
&Apache::edit::text_arg('Vector:','vector', |
&Apache::edit::text_arg('Vector:','vector', |
$token,'16').'<br />'. |
$token,'16').'<br />'. |
|
&Apache::edit::text_arg('Attached to object:','attachpoint', |
|
$token,'16'). |
|
&Apache::edit::text_arg('Not attached to object:','notattachpoint', |
|
$token,'16').'<br />'. |
&Apache::edit::text_arg('Tail attached to object:','tailpoint', |
&Apache::edit::text_arg('Tail attached to object:','tailpoint', |
$token,'16'). |
$token,'16'). |
&Apache::edit::text_arg('Tip attached to object:','tippoint', |
&Apache::edit::text_arg('Tip attached to object:','tippoint', |
Line 830 sub start_functionplotvectorrule {
|
Line 846 sub start_functionplotvectorrule {
|
$token,'8'). |
$token,'8'). |
&Apache::edit::end_row(); |
&Apache::edit::end_row(); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
$env{'form.'.&Apache::edit::html_element_name('vector')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('vector')}); |
$env{'form.'.&Apache::edit::html_element_name('vector')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('vector')}); |
$env{'form.'.&Apache::edit::html_element_name('tailpoint')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('tailpoint')}); |
$env{'form.'.&Apache::edit::html_element_name('attachpoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('attachpoint')}); |
$env{'form.'.&Apache::edit::html_element_name('tippoint')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('tippoint')}); |
$env{'form.'.&Apache::edit::html_element_name('notattachpoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('notattachpoint')}); |
$env{'form.'.&Apache::edit::html_element_name('nottailpoint')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('nottailpoint')}); |
$env{'form.'.&Apache::edit::html_element_name('tailpoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('tailpoint')}); |
$env{'form.'.&Apache::edit::html_element_name('nottippoint')}=lcfirst($env{'form.'.&Apache::edit::html_element_name('nottippoint')}); |
$env{'form.'.&Apache::edit::html_element_name('tippoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('tippoint')}); |
|
$env{'form.'.&Apache::edit::html_element_name('nottailpoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('nottailpoint')}); |
|
$env{'form.'.&Apache::edit::html_element_name('nottippoint')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('nottippoint')}); |
my $constructtag=&Apache::edit::get_new_args($token,$parstack, |
my $constructtag=&Apache::edit::get_new_args($token,$parstack, |
$safeeval,'index','vector', |
$safeeval,'index','vector','attachpoint','notattachpoint', |
'tailpoint','tippoint','nottailpoint','nottipoint', |
'tailpoint','tippoint','nottailpoint','nottipoint', |
'length','angle', |
'length','angle', |
'lengthpercenterror','anglepercenterror'); |
'lengthpercenterror','anglepercenterror'); |
Line 854 sub end_functionplotvectorrule {
|
Line 872 sub end_functionplotvectorrule {
|
return $result; |
return $result; |
} |
} |
|
|
|
# |
|
# <functionplotvectorsumrule ... /> |
|
# |
|
sub start_functionplotvectorsumrule { |
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
|
my $result=''; |
|
my $label=&Apache::lonxml::get_param('index',$parstack,$safeeval); |
|
$Apache::functionplotresponse::counter++; |
|
if ($label=~/\W/) { |
|
&Apache::lonxml::warning(&mt('Rule indices should only contain alphanumeric characters.')); |
|
} |
|
$label=~s/\W//gs; |
|
unless ($label) { |
|
$label='V'.$Apache::functionplotresponse::counter; |
|
} else { |
|
$label='V'.$label; |
|
} |
|
if ($Apache::functionplotresponse::splineorder{$label}) { |
|
&Apache::lonxml::error(&mt('Rule indices must be unique.')); |
|
} |
|
if ($target eq 'grade') { |
|
# Simply remember - in order - for later |
|
my $object=&Apache::lonxml::get_param('object',$parstack,$safeeval); |
|
$object=~s/\W//gs; |
|
$object=ucfirst($object); |
|
push(@Apache::functionplotresponse::functionplotvectorrules,join(':',( |
|
$label, |
|
'sum', |
|
$object, |
|
&Apache::lonxml::get_param('length',$parstack,$safeeval), |
|
&Apache::lonxml::get_param('angle',$parstack,$safeeval), |
|
&Apache::lonxml::get_param('lengthpercenterror',$parstack,$safeeval), |
|
&Apache::lonxml::get_param('lengthabserror',$parstack,$safeeval), |
|
&Apache::lonxml::get_param('anglepercenterror',$parstack,$safeeval), |
|
))); |
|
} elsif ($target eq 'edit') { |
|
$result=&Apache::edit::tag_start($target,$token,'Function Plot Vector Sum Rule'). |
|
&Apache::edit::text_arg('Index/Name:','index', |
|
$token,'10').' '. |
|
&Apache::edit::text_arg('Vectors attached to object:','object', |
|
$token,'16').'<br />'. |
|
&Apache::edit::text_arg('Sum vector length:','length', |
|
$token,'16'). |
|
&Apache::edit::text_arg('Sum vector angle:','angle', |
|
$token,'16'). |
|
&Apache::edit::text_arg('Percent error length:','lengthpercenterror', |
|
$token,'8'). |
|
&Apache::edit::text_arg('Absolute error length:','lengthabserror', |
|
$token,'8'). |
|
&Apache::edit::text_arg('Percent error angle:','anglepercenterror', |
|
$token,'8'). |
|
&Apache::edit::end_row(); |
|
} elsif ($target eq 'modified') { |
|
$env{'form.'.&Apache::edit::html_element_name('object')}=ucfirst($env{'form.'.&Apache::edit::html_element_name('object')}); |
|
my $constructtag=&Apache::edit::get_new_args($token,$parstack, |
|
$safeeval,'index','object', |
|
'length','angle', |
|
'lengthpercenterror','lengthabserror','anglepercenterror'); |
|
if ($constructtag) { $result=&Apache::edit::rebuild_tag($token); } |
|
} |
|
return $result; |
|
} |
|
|
|
sub end_functionplotvectorsumrule { |
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
|
my $result=''; |
|
if ($target eq 'edit') { |
|
$result=&Apache::edit::end_table(); |
|
} |
|
return $result; |
|
} |
|
|
# |
# |
# <spline index="..." order="1,2,3,4" initx="..." inity="..." scalex="..." scaley="..." /> |
# <spline index="..." order="1,2,3,4" initx="..." inity="..." scalex="..." scaley="..." /> |