Hi everyone,
Our WeBWorK courses use GeoGebra in certain problems. However, since upgrading to WeBWorK version 2.18, these problems are no longer functioning.
Below is the error message for a specific problem.
We do have the AppletObjects.pl macro located in /opt/webwork/pg/macros.
Any insights or solutions would be greatly appreciated!
Error messages
Error details
ERROR caught by Translator while processing problem file: BMCCGGB/Sand5.pg
ERRORS from evaluating PG file: Can't locate object method "new" via package "GeogebraWebApplet" (perhaps you forgot to load "GeogebraWebApplet"?) at line 75 of [PG]/macros/AppletObjects.pl from within main::GeogebraWebApplet called at line 41 of BMCCGGB/Sand5.pg
Input Read:
1: ## DBsubject(Algebra) 2: ## DBchapter(Conic sections) 3: ## DBsection(Circles) 4: DOCUMENT(); 5: loadMacros( 6: "PGstandard.pl", 7: "MathObjects.pl", 8: "PGinfo.pl", 9: "AppletObjects.pl", 10: #"source.pl", 11: "PGcourse.pl", 12: "contextFraction.pl" 13: ); 14: TEXT(beginproblem()); 15: 16: $showPartialCorrectAnswers = 1; 17: 18: Context("Fraction"); 19: Context()->variables->add(y=>"Real"); 20: Context()->variables->add(z=>"Real"); 21: 22: $d=list_random(2,3,5,7); 23: do {$a=list_random(-2,-3,-5,-7,2,3,5,7);} until (gcd($a,$d)==1); 24: $m=Fraction($a,$d); 25: $b=non_zero_random(-5,5); 26: 27: $answer = Compute("($a/$d, $b)"); 28: ###################################### 29: # Create link to applet: 30: ################################### 31: # You can name your applet (anything reasonable :-) ) 32: # Adjust the height and width as desired 33: # Paste the geogebra parameters in at the bottom of the page just above the 34: # command end command 35: # so that they don't get in the way 36: ################################### 37: 38: 39: $appletName = "ggbfoo"; 40: $applet = GeogebraWebApplet( 41: code => "geogebra.GeoGebraApplet", 42: #archive => "geogebra.jar", 43: #codebase => findAppletCodebase("geogebra.jar"), 44: appletName => $appletName, 45: appletId => $appletName, 46: submitActionAlias => 'getAppletValues', # default actionAlias 47: initializeActionAlias => '', # default actionAlias 48: setStateAlias => 'setXML', 49: getStateAlias => 'getXML', 50: setConfigAlias => '', 51: getConfigAlias => '', 52: returnFieldName => '', 53: width => 400, # may want to modify width 54: height => 400, # may want to modify height 55: # mayscript => "true", 56: debugMode => 0, # set debugMode to 0 for no debug 57: # to 1 to make xml representation visible 58: # to 2 to add alerts detailing progression 59: # through the applet 60: onInit => 'ggbOnInit', 61: type => 'geogebraweb', 62: submitActionScript => qq{ getQE('answerBox').value = getAppletValues() }, 63: selfLoading => 1, 64: params => GEOGEBRA_PARAMS(),# paste parameters in 65: 66: ); 67: 68: 69: ################################## 70: # Setup GeogebraWebApplet -- 71: ################################### 72: 73: HEADER_TEXT( MODES(TeX=>'', HTML=><<END_SCRIPT ) ); 74: <script language="javascript"> 75: function ggbOnInit(param) { 76: var applet = document.$appletName; 77: if (param == "$appletName") { 78: applet_loaded(param,1); // report that applet is ready. 79: ww_applet_list[param].safe_applet_initialize(2); 80: ww_applet_list[param].object = param; 81: console.log("ggbOnInit: ww_applet_list["+param+"].object = ", ww_applet_list[param].object ); 82: } 83: 84: } 85: </script> 86: END_SCRIPT 87: HEADER_TEXT( MODES(TeX=>'', HTML=><<END_SCRIPT ) ); 88: <script language="javascript"> 89: function setConfig() { 90: var appletState = getQE('${appletName}_state').value; 91: //console.log("appletState =" + appletState); 92: //console.log( "foobar " +ww_applet_list['$appletName'].object); 93: if (ww_applet_list['$appletName'].object == undefined ) { 94: setTimeout("setConfig()", 5000); 95: console.log("waiting"); 96: } else { 97: //console.log("run setConfig"); 98: //console.log("object is " +ww_applet_list['ggbfoo'].object); 99: var applet=$appletName; 100: applet.evalCommand("A = (0,1)"); 101: applet.setCoords('B',1,0) ; 102: } 103: 104: } 105: </script> 106: END_SCRIPT 107: 108: 109: 110: HEADER_TEXT( MODES(TeX=>'', HTML=><<END_SCRIPT ) ); 111: 112: <script language="javascript"> 113: function getAppletValues() { 114: console.log("getAppletValues() entered"); 115: // get a handle for the applet object 116: var applet = $appletName; 117: var m = applet.getValue("m"); 118: var b = applet.getValue("b"); 119: 120: return( m + ',' + b); 121: } 122: </script> 123: END_SCRIPT 124: ################################### 125: #insert applet into body -- this does not need to be changed 126: # except to adjust the insertion of the reinitialize_button or 127: # a hidden AnswerBox 128: ################################### 129: TEXT($PAR, MODES(TeX=>'geogebraweb code', 130: HTML=>$applet->insertAll( 131: debug =>0, 132: reinitialize_button => 1, 133: includeAnswerBox=>1, 134: ))); 135: 136: ####################################### 137: # TEXT 138: ####################################### 139: Context()->texStrings; 140: BEGIN_TEXT 141: Graph the line with following equation. 142: $BR 143: $BR 144: \( \displaystyle y= $m x+$b\) 145: $BR 146: $BR 147: Answer by placing points \(A\) and \(B\). 148: $BR 149: $BR 150: Click the submit answers button when you are done. 151: $PAR 152: 153: $PAR 154: END_TEXT 155: 156: #TEXT($PAR, "foostate |", $inputs_ref->{ "${appletName}_state"}, "|"); 157: 158: TEXT( "run SetConfig", q!<script language="javascript">setConfig()</script> !) if $inputs_ref->{ "${appletName}_state"} =~ "restart_applet"; 159: 160: ######################################### 161: # ANSWER section 162: ######################################### 163: 164: NAMED_ANS( 'answerBox' => $answer->cmp( tolerance => .01 )); 165: 166: sub GEOGEBRA_PARAMS { 167: my $result = { 168: showResetIcon=>"false" , 169: enableRightClick=>"false" , 170: enableLabelDrags=>"false", 171: showMenuBar=>"false" , 172: showToolBar=>"false", 173: showAlgebraInput=>"false", 174: useBrowserForJS=>"true", 175: ggbbase64=>"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"}; 176: $result; 177: } 178: ENDDOCUMENT();