var text = ""; // Last text of sentence var element_name = '#textanalyser'; var element = $(element_name); element.autocompleteTrigger({ triggerStart: '#', triggerEnd: '', source: autocompleteCallback }); // TODO - hide this in a scope function analyzeSentence(sentence, finalize) { var ret = textAnalyser2(sentence, finalize); switch (ret.state) { case ANALYSIS_NODE_START: $('.typeselection').css({top:window.innerHeight/2-115,left:window.innerWidth/2-325}); $('.typeselection').html('
Use [TAB] key to pick a type
'); break; case ANALYSIS_LINK: $('.typeselection').css('top', -300); $('.typeselection').css('left', 0); break; } ret.applyToGraph(graph); if (finalize || sentence.length == 0) { $('.typeselection').css('top', -300); $('.typeselection').css('left', 0); } } element.keypress(function(e) { if (graph.history !== undefined) { graph.history.record_keystrokes(KEYSTROKE_WHERE_TEXTANALYSIS, [e.which]); } if (e.which == 13) { if(!suggestionChange) { text = element.val(); element.val(""); analyzeSentence(text, true); typeStack = []; } else { suggestionChange = false; } return false; } if (e.which == 37) {//RIGHT $('body').scrollLeft(0); e.stopPropagation(); return false; } if (e.which == 39) { //LEFT $('body').scrollLeft(0); e.stopPropagation(); return false; } }); $(document).keydown(function(e) { if (graph.history !== undefined) { graph.history.record_keystrokes(KEYSTROKE_WHERE_DOCUMENT, [e.KeyCode]); } if (e.keyCode == 9) {//TAB e.preventDefault(); changeType("down", lastnode); return false; } if (e.keyCode == 37) {//UP $('html, body').scrollLeft(0); } if (e.keyCode == 39) {//DOWN $('html, body').scrollLeft(0); } if (e.keyCode == 38) {//UP suggestionChange = true; } if (e.keyCode == 40) {//DOWN suggestionChange = true; } if (e.keyCode == 9) {//TAB return false; } }); function textSelect(inp, s, e) { e = e || s; if (inp.createTextRange) { var r = inp.createTextRange(); r.collapse(true); r.moveEnd('character', e); r.moveStart('character', s); r.select(); }else if(inp.setSelectionRange) { inp.focus(); inp.setSelectionRange(s, e); } } function changeType(arg, id) { if(!id) { id = "new node"; } if (arg === 'up') { if (typeindex < 4) typeindex++; else typeindex = 0; graph.editType(id, null, nodetypes[typeindex]); $('.typeselection').html('
' + "Chosen Type: " + nodetypes[typeindex] + '
'); graph.findCoordinates(lastnode,null); } else { if (typeindex > 0) typeindex--; else typeindex = 4; graph.editType(id, null, nodetypes[typeindex]); $('.typeselection').html('
' + "Chosen Type: " + nodetypes[typeindex] + '
'); graph.findCoordinates(lastnode,null); } graph.update(true); } if (element.length == 1) { /* TODO: don't use interval by default but only if keys are comming to fast (but still - 5 ms??) */ window.setInterval(function() { if (element.val() != text) { if (text.length * 8 > 500) { element.css('width', text.length * 8 + 20); } // text changed text = element.val(); analyzeSentence(text, false); suggestionChange = false; } }, 5); }