summaryrefslogtreecommitdiff
path: root/js/codeq/robot.js
diff options
context:
space:
mode:
authorTimotej Lazar <timotej.lazar@araneo.org>2015-10-05 10:11:26 +0200
committerTimotej Lazar <timotej.lazar@araneo.org>2015-10-05 10:11:26 +0200
commit194f3449751b90c1f8d7ec3625ab26594bc808c6 (patch)
treeae45810c5448ea45d9b7cf3c6c7c63a03d1de16e /js/codeq/robot.js
parent5877ffd8aaffdf3e416dbb36e766736b866e5963 (diff)
Move makeActivityHandler to core.js
There were three identical copies for {prolog,python,robot}.js.
Diffstat (limited to 'js/codeq/robot.js')
-rw-r--r--js/codeq/robot.js65
1 files changed, 1 insertions, 64 deletions
diff --git a/js/codeq/robot.js b/js/codeq/robot.js
index c2d23e1..8854855 100644
--- a/js/codeq/robot.js
+++ b/js/codeq/robot.js
@@ -118,73 +118,10 @@
// a constant
var firstCharacterPos = {'line': 0, 'ch': 0};
- var makeRobotTerminalHandler = function (jqConsole, editor, problem_id, activityHandler) {
- var terminal = codeq.makeConsole(jqConsole, {
- 'greeting': 'CodeQ Robot terminal proxy',
- 'autoHistory': true
- });
-
- terminal.onInput = function (text) {
- terminal.append('Not implemented.\n', 'output');
- };
- return terminal;
- };
-
- var makeActivityHandler = function (editor, problem_id) {
- var lastActivityMillis = Date.now(),
- deltaActivityMillis = function deltaActivityMillisFunc () {
- var now = Date.now(),
- dt = now - lastActivityMillis;
- lastActivityMillis = now;
- return dt;
- },
- queue = [],
- ts = null,
- timer = function () {
- var promise;
- ts = null;
- if (queue.length === 0) return Q(true);
- promise = codeq.comms.sendActivity(queue, editor.getDoc().getValue(), problem_id);
- queue.length = 0;
- return promise;
- },
- flush = function () {
- clearTimeout(ts);
- return timer();
- };
-
- return {
- 'queueTrace': function (trace) {
- trace['dt'] = deltaActivityMillis();
- queue.push(trace);
- if (ts === null) ts = setTimeout(timer, 10000); // flush every 10 seconds
- return this;
- },
- 'flush': flush,
- 'addAndPurge': function (trace) {
- var accumulatedTrace = queue;
- queue = [];
- trace['dt'] = deltaActivityMillis();
- accumulatedTrace.push(trace);
- if (ts !== null) {
- clearTimeout(ts);
- ts = null;
- }
- return accumulatedTrace;
- }
- };
- };
-
codeq.on('init', function (args) {
codeq.tr.registerDictionary('robot', codeq.tr.emptyDictionary); // to make the translator happy, when this screen is not active
});
- /**
- * Creates a new handler for the given Prolog assignment definition.
- *
- * @param {PrologTaskDef} info
- * @returns {{destroy: Function, processServerHints: Function}}
- */
var createRobotHandler = function (problemDef, commonDef, currentSolution) {
var //problem = info.problem,
jqDescriptionContent = jqDescription.find('.description'),
@@ -196,7 +133,7 @@
indentUnit: 4,
value: currentSolution || ''
}),
- activityHandler = makeActivityHandler(editor, problemDef.id),
+ activityHandler = codeq.makeActivityHandler(editor, problemDef.id),
terminal = makeRobotTerminalHandler(jqTerminal, editor, problemDef.id, activityHandler),
hinter = codeq.makeHinter(jqHints, jqEditor, editor, 'robot_hints', problemDef, commonDef),
commError = function (error) {