--- loncom/homework/functionplotresponse.pm 2010/09/27 22:15:32 1.1 +++ 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.1 2010/09/27 22:15:32 www Exp $ +# $Id: functionplotresponse.pm,v 1.3 2010/10/04 18:28:53 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -37,26 +37,99 @@ BEGIN { } 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); + 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.=&start_init_script($internalid); } return $result; } @@ -64,11 +137,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;