Files
edx-platform/common/static/js/capa/design-protein-2d.js

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);