--- loncom/homework/functionplotresponse.pm 2010/10/04 14:34:43 1.2 +++ loncom/homework/functionplotresponse.pm 2010/10/04 18:28:53 1.3 @@ -1,7 +1,7 @@ # LearningOnline Network with CAPA # option list style responses # -# $Id: functionplotresponse.pm,v 1.2 2010/10/04 14:34:43 www Exp $ +# $Id: functionplotresponse.pm,v 1.3 2010/10/04 18:28:53 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -37,8 +37,9 @@ BEGIN { } sub geogebra_startcode { + my ($id)=@_; return (< ENDSTARTCODE @@ -55,6 +56,7 @@ ENDSPLINEPROGRAM } sub geogebra_default_parameters { + my ($id)=@_; return(< @@ -76,18 +78,58 @@ sub geogebra_default_parameters { - + ENDDEFAULTPARAMETERS } +sub init_script { + if ($Apache::functionplotresponse::callscripts) { + return (< +// + +ENDGGBINIT + } +} + +sub start_init_script { + my ($id)=@_; + $Apache::functionplotresponse::callscripts.="if (param=='applet_$id') { ggbInit_$id(); }\n"; + return (< +// + +ENDENDINIT +} + sub start_functionplotresponse { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result=''; - my $id = &Apache::response::start_response($parstack,$safeeval); + my $internalid = $Apache::inputtags::part.'_'.&Apache::response::start_response($parstack,$safeeval); + my $xmin=&Apache::lonxml::get_param('xmin',$parstack,$safeeval); + my $xmax=&Apache::lonxml::get_param('xmax',$parstack,$safeeval); + my $ymin=&Apache::lonxml::get_param('ymin',$parstack,$safeeval); + my $ymax=&Apache::lonxml::get_param('ymax',$parstack,$safeeval); + my $xaxisvisible=&Apache::lonxml::get_param('xaxisvisible',$parstack,$safeeval); + my $yaxisvisible=&Apache::lonxml::get_param('yaxisvisible',$parstack,$safeeval); + my $gridvisible=&Apache::lonxml::get_param('gridvisible',$parstack,$safeeval); + + if ($target eq 'web') { - $result.=&geogebra_startcode(); - $result.=&geogebra_spline_program(); - $result.=&geogebra_default_parameters(); + $result.=&start_init_script($internalid); } return $result; } @@ -95,9 +137,16 @@ sub start_functionplotresponse { sub end_functionplotresponse { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; &Apache::response::end_response; + my $result; + my $internalid = $Apache::inputtags::part.'_'.$Apache::inputtags::response[-1]; + # if ($target eq 'edit') { $result=&Apache::edit::end_table(); } if ($target eq 'web') { + $result.=&end_init_script(); + $result.=&geogebra_startcode($internalid); + $result.=&geogebra_spline_program(); + $result.=&geogebra_default_parameters($internalid); $result.=&geogebra_endcode(); } return $result;