(function() { var timeout = 1000; waitForProtex(); function waitForProtex() { if (typeof(protex) !== 'undefined' && protex) { protex.onInjectionDone('protex'); } /* if (typeof(protex) !== "undefined") { //initializeProtex(); }*/ else { setTimeout(function() { waitForProtex(); }, timeout); } } // NOTE: // Protex uses three global functions: // protexSetTargetShape (exported from GWT) // exported protexCheckAnswer (exported from GWT) // It calls protexIsReady with a deferred command when it has finished // initialization and has drawn itself function updateProtexField() { var problem = $('#protex_container').parents('.problem'); var input_field = problem.find('input[type=hidden]'); var protex_answer = protexCheckAnswer(); var value = {protex_answer: protex_answer}; // console.log(JSON.stringify(value)); input_field.val(JSON.stringify(value)); } protexIsReady = function() { // Load target shape var target_shape = $('#target_shape').val(); protexSetTargetShape(target_shape); // Get answer from protex and store it into the hidden input field // when Check button is clicked var fold_button = $('#fold-button'); fold_button.on('click', function() { var problem = $('#protex_container').parents('.problem'); var input_field = problem.find('input[type=hidden]'); var protex_answer = protexCheckAnswer(); var value = {protex_answer: protex_answer}; // console.log(JSON.stringify(value)); input_field.val(JSON.stringify(value)); }); updateProtexField(); }; /* function initializeProtex() { //Check to see if the two exported GWT functions protexSetTargetShape // and protexCheckAnswer have been appended to global scope -- this //happens at the end of onModuleLoad() in GWT if (typeof(protexSetTargetShape) === "function" && typeof(protexCheckAnswer) === "function") { //Load target shape var target_shape = $('#target_shape').val(); //protexSetTargetShape(target_shape); //Get answer from protex and store it into the hidden input field //when Check button is clicked var problem = $('#protex_container').parents('.problem'); var check_button = problem.find('input.check'); var input_field = problem.find('input[type=hidden]'); check_button.on('click', function() { var protex_answer = protexCheckAnswer(); var value = {protex_answer: protex_answer}; input_field.val(JSON.stringify(value)); }); //TO DO: Fix this, it works but is utterly ugly and unreliable setTimeout(function() { protexSetTargetShape(target_shape);}, 2000); } else { setTimeout(function() {initializeProtex(); }, timeout); } }*/ }).call(this);