[LON-CAPA-cvs] cvs: loncom /homework functionplotresponse.pm
www
www@source.lon-capa.org
Sun, 17 Oct 2010 22:32:19 -0000
www Sun Oct 17 22:32:19 2010 EDT
Modified files:
/loncom/homework functionplotresponse.pm
Log:
Axis Labels
Index: loncom/homework/functionplotresponse.pm
diff -u loncom/homework/functionplotresponse.pm:1.13 loncom/homework/functionplotresponse.pm:1.14
--- loncom/homework/functionplotresponse.pm:1.13 Sun Oct 10 00:14:15 2010
+++ loncom/homework/functionplotresponse.pm Sun Oct 17 22:32:19 2010
@@ -1,7 +1,7 @@
# LearningOnline Network with CAPA
# option list style responses
#
-# $Id: functionplotresponse.pm,v 1.13 2010/10/10 00:14:15 www Exp $
+# $Id: functionplotresponse.pm,v 1.14 2010/10/17 22:32:19 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -224,10 +224,33 @@
ENDAXESSCRIPT
}
+sub axes_label {
+ my ($id,$xlabel,$ylabel)=@_;
+ unless ($xlabel || $ylabel) { return ''; }
+ my $return='document.ggbApplet_'.$id.'.evalCommand("topRight=Corner[3]");';
+ if ($xlabel) {
+ $return.=(<<ENDXAXISLABELSCRIPT);
+document.ggbApplet_$id.evalCommand("Xlabel=(x(topRight)-AxisStepX[],AxisStepY[]/6)");
+document.ggbApplet_$id.setVisible("Xlabel",false);
+document.ggbApplet_$id.evalCommand("Text[\\"$xlabel\\", Xlabel]");
+ENDXAXISLABELSCRIPT
+ }
+ if ($ylabel) {
+ $return.=(<<ENDYAXISLABELSCRIPT);
+document.ggbApplet_$id.evalCommand("Ylabel=(AxisStepX[]/6,y(topRight)-AxisStepY[]/3)");
+document.ggbApplet_$id.setVisible("Ylabel",false);
+document.ggbApplet_$id.evalCommand("Text[\\"$ylabel\\", Ylabel]");
+ENDYAXISLABELSCRIPT
+ }
+ return $return;
+}
+
sub plot_script {
my ($id,$function,$fixed)=@_;
if ($fixed) {
# Use stupid trick to nail this to a location
+# Oddly, it seems like only one plot cannot be nailed to a location
+# Non-nailed-down plots apparently get overwritten
return (<<ENDPLOTSCRIPT);
document.ggbApplet_$id.evalCommand("a=1");
document.ggbApplet_$id.setVisible("a",false);
@@ -367,15 +390,15 @@
} elsif ($target eq 'edit') {
$result=&Apache::edit::tag_start($target,$token,'Spline').
&Apache::edit::text_arg('Label:','label',
- $token,'4').
+ $token,'4').' '.
&Apache::edit::select_arg('Order:','order',
- ['2','3','4','5','6','7','8','9'],$token).
+ ['2','3','4','5','6','7','8','9'],$token).' '.
&Apache::edit::text_arg('Initial x-value:','initx',
- $token,'4').
+ $token,'4').' '.
&Apache::edit::text_arg('Initial y-value:','inity',
- $token,'4').
+ $token,'4').' '.
&Apache::edit::text_arg('Scale x:','scalex',
- $token,'4').
+ $token,'4').' '.
&Apache::edit::text_arg('Scale y:','scaley',
$token,'4').
&Apache::edit::end_row();
@@ -463,6 +486,8 @@
my $xaxisvisible=(&Apache::lonxml::get_param('xaxisvisible',$parstack,$safeeval)=~/on|true|yes|1/i?'true':'false');
my $yaxisvisible=(&Apache::lonxml::get_param('yaxisvisible',$parstack,$safeeval)=~/on|true|yes|1/i?'true':'false');
my $gridvisible=(&Apache::lonxml::get_param('gridvisible',$parstack,$safeeval)=~/on|true|yes|1/i?'true':'false');
+ my $xlabel=&Apache::lonxml::get_param('xlabel',$parstack,$safeeval);
+ my $ylabel=&Apache::lonxml::get_param('ylabel',$parstack,$safeeval);
if ($target eq 'edit') {
$result.=&Apache::edit::start_table($token)
.'<tr><td><span class="LC_nobreak">'.&mt('Function Plot Question').'</span></td>'
@@ -473,24 +498,28 @@
.&Apache::edit::end_row()
.&Apache::edit::start_spanning_row()
."\n";
- $result.=&Apache::edit::text_arg('Minimum x-value:','xmin',
- $token,'4').
+ $result.=&Apache::edit::text_arg('Label x-axis:','xlabel',
+ $token,'6').' '.
+ &Apache::edit::text_arg('Minimum x-value:','xmin',
+ $token,'4').' '.
&Apache::edit::text_arg('Maximum x-value:','xmax',
- $token,'4').
+ $token,'4').' '.
&Apache::edit::select_arg('x-axis visible:','xaxisvisible',
- ['yes','no'],$token).
+ ['yes','no'],$token).' '.
+ &Apache::edit::text_arg('Label y-axis:','ylabel',
+ $token,'6').' '.
&Apache::edit::text_arg('Minimum y-value:','ymin',
- $token,'4').
+ $token,'4').' '.
&Apache::edit::text_arg('Maximum y-value:','ymax',
- $token,'4').
+ $token,'4').' '.
&Apache::edit::select_arg('y-axis visible:','yaxisvisible',
- ['yes','no'],$token).
+ ['yes','no'],$token).' '.
&Apache::edit::select_arg('Grid visible:','gridvisible',
['yes','no'],$token).
&Apache::edit::end_row().&Apache::edit::start_spanning_row();
} elsif ($target eq 'modified') {
my $constructtag=&Apache::edit::get_new_args($token,$parstack,
- $safeeval,'xmin','xmax','ymin','ymax',
+ $safeeval,'xlabel','xmin','xmax','ylabel','ymin','ymax',
'xaxisvisible','yaxisvisible','gridvisible');
if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }
@@ -503,6 +532,7 @@
$result.=&start_init_script($internalid);
# put the axis commands inside
$result.=&axes_script($internalid,$xmin,$xmax,$ymin,$ymax,$xaxisvisible,$yaxisvisible,$gridvisible);
+ $result.=&axes_label($internalid,$xlabel,$ylabel);
# init script is left open
}
return $result;