--- loncom/homework/functionplotresponse.pm 2010/09/27 22:15:32 1.1 +++ loncom/homework/functionplotresponse.pm 2010/10/04 19:26:39 1.4 @@ -1,7 +1,7 @@ # LearningOnline Network with CAPA # option list style responses # -# $Id: functionplotresponse.pm,v 1.1 2010/09/27 22:15:32 www Exp $ +# $Id: functionplotresponse.pm,v 1.4 2010/10/04 19:26:39 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,30 +33,142 @@ use Apache::lonlocal; use Apache::lonnet; BEGIN { - &Apache::lonxml::register('Apache::functionplotresponse',('functionplotresponse')); + &Apache::lonxml::register('Apache::functionplotresponse',('functionplotresponse','backgroundplot')); } sub geogebra_startcode { + my ($id)=@_; return (< ENDSTARTCODE } sub geogebra_endcode { - return "\n\n"; + return &Apache::lonhtmlcommon::java_not_enabled()."\n"; +} + +sub geogebra_spline_program { + return (< +ENDSPLINEPROGRAM +} + +sub geogebra_default_parameters { + my ($id)=@_; + return(< + + + + + + + + + + + + + + + + + + + + +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=''; - #when in a option response use these -# &Apache::lonxml::register('Apache::optionresponse',('foilgroup','foil','conceptgroup','drawoptionlist')); - push (@Apache::lonxml::namespace,'optionresponse'); - 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); + $xmin=($xmin?$xmin:-10); + my $xmax=&Apache::lonxml::get_param('xmax',$parstack,$safeeval); + $xmax=($xmax?$xmax:10); + my $ymin=&Apache::lonxml::get_param('ymin',$parstack,$safeeval); + $ymin=($ymin?$ymin:-10); + my $ymax=&Apache::lonxml::get_param('ymax',$parstack,$safeeval); + $ymax=($ymax?$ymax:10); + my $xaxisvisible=(&Apache::lonxml::get_param('xaxisvisible',$parstack,$safeeval)=~/on|true|1/i?'true':'false'); + my $yaxisvisible=(&Apache::lonxml::get_param('yaxisvisible',$parstack,$safeeval)=~/on|true|1/i?'true':'false'); + my $gridvisible=(&Apache::lonxml::get_param('gridvisible',$parstack,$safeeval)=~/on|true|1/i?'true':'false'); + + if ($target eq 'web') { - $result.=&geogebra_startcode(); + $result.=&start_init_script($internalid); + $result.=&axes_script($internalid,$xmin,$xmax,$ymin,$ymax,$xaxisvisible,$yaxisvisible,$gridvisible); } return $result; } @@ -64,11 +176,16 @@ sub start_functionplotresponse { sub end_functionplotresponse { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; &Apache::response::end_response; - pop @Apache::lonxml::namespace; -# &Apache::lonxml::deregister('Apache::optionresponse',('foilgroup','foil','conceptgroup','drawoptionlist')); + 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;