86 lines
3.2 KiB
JavaScript
86 lines
3.2 KiB
JavaScript
(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);
|