annotate hip.js @ 4:4ea09b7ce820

Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
author jonathandicarlo@jonathan-dicarlos-macbook-pro.local
date Tue, 13 May 2008 13:04:25 -0700
parents a31bdc4de955
children a049cb93db46
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
1
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
2 function NounType( name, expectedWords ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
3 this._init( name, expectedWords );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
4 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
5 NounType.prototype = {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
6 _init: function( name, expectedWords ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
7 this._name = name;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
8 this._expectedWords = expectedWords; // an array
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
9 },
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
10
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
11 match: function( fragment ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
12 var suggs = this.suggest( fragment );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
13 // klugy!
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
14 if ( suggs.length > 0 ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
15 return true;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
16 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
17 return false;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
18 },
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
19
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
20 suggest: function( fragment ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
21 // returns (ordered) array of suggestions
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
22 var suggestions = [];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
23 for ( var x in this._expectedWords ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
24 word = this._expectedWords[x];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
25 if ( word.indexOf( fragment ) > -1 ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
26 suggestions.push( word );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
27 // TODO sort these in order of goodness
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
28 // todo if fragment is multiple words, search for each of them
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
29 // separately within the expected word.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
30 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
31 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
32 return suggestions;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
33 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
34 };
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
35
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
36 // for example....
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
37 var city = new NounType( "city", [ "new york", "los angeles", "mexico city", "sao paulo", "rio de janeiro", "buenos aires", "london", "paris", "moscow", "cairo", "lagos", "tehran", "karachi", "mumbai", "delhi", "kolkata", "jakarta", "manila", "bejing", "singapore", "shanghai", "hong kong", "seoul", "tokyo", "osaka" ] );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
38
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
39 var language = new NounType( "language", [ "english", "chinese", "hindi", "japanese", "klingon", "esperanto", "sanskrit", "pig latin", "tagalog", "portugese" ] );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
40
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
41 var tab = new NounType( "tab", [ "gmail", "mozilla developer connection", "xulplanet", "evilbrainjono.net", "google calendar", "humanized enso forum" ] );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
42
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
43 var person = new NounType( "person", ["atul@mozilla.com", "aza@mozilla.com", "thunder@mozilla.com", "chris@mozilla.com", "myk@mozilla.com" ] );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
44
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
45 var anyWord = {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
46 // a singleton object which can be used in place of a NounType.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
47 match: function( fragment ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
48 return true;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
49 },
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
50 suggest: function( fragment ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
51 return [ fragment ];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
52 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
53 };
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
54
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
55 function ParsedSentence( rawText, verb, DO, DOType, modifiers ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
56 this._init( rawText, verb, DO, DOType, modifiers );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
57 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
58 ParsedSentence.prototype = {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
59 _init: function( rawText, verb, DO, DOType, modifiers ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
60
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
61 // needs state to represent what's locked in so far.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
62 },
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
63
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
64 lockInLatestWord: function( selectedCompletion ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
65 //
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
66
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
67 },
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
68
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
69 getCompletions: function() {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
70 },
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
71
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
72 getDescription: function() {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
73 // returns a string describing what the sentence will do if executed
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
74 },
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
75
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
76 };
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
77
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
78
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
79 function Verb( name, DOLabel, DOType, modifiers ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
80 this._init( name, DOLabel, DOType, modifiers );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
81 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
82 Verb.prototype = {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
83 _init: function( name, DOLabel, DOType, modifiers ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
84 this._name = name;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
85 this._DOLabel = DOLabel;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
86 this._DOType = DOType; // must be a NounType.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
87 this._modifiers = modifiers;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
88 // modifiers should be a dictionary
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
89 // keys are prepositions
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
90 // values are NounTypes.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
91 // example: { "from" : City, "to" : City, "on" : Day }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
92 },
1
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
93
4
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
94 getCompletions: function( words ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
95 /* words is an array of words that were space-separated.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
96 already determined that words[0] matches this verb;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
97 Everything after that is either:
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
98 1. my direct object
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
99 2. a preposition
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
100 3. a noun following a preposition.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
101 */
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
102 var predicate = "";
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
103 var completions = [];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
104 var suggestions = [];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
105 var x;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
106 var y;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
107
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
108 // TODO pull out things that might be modifiers, try using
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
109 // the remainder as the direct object.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
110
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
111 for ( x = 1; x < words.length; x++ ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
112 // a horrible way of reassembling input minus verb
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
113 predicate = predicate + words[x];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
114 if ( x < words.length - 1 ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
115 predicate = predicate + " ";
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
116 }
1
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
117 }
4
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
118
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
119 // first approx: just try out each word as direct object
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
120 if ( this._DOType == null ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
121 // No direct object accepted!!
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
122 if ( predicate.length == 0 ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
123 return [this._name];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
124 } else {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
125 return [];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
126 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
127 } else if ( this._DOType.match( predicate ) ){
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
128 // direct object accepts whole input at once?
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
129 suggestions = this._DOType.suggest( predicate );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
130 for( y in suggestions ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
131 completions.push( this._name + " " + suggestions[y] );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
132 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
133 return completions;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
134 } else {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
135 // try each word as the direct object
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
136 for ( x=1; x<words.length; x++ ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
137 if ( this._DOType.match( words[x] ) ){
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
138 suggestions = this._DOType.suggest( predicate );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
139 for( y in suggestions ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
140 completions.push( this._name + " " + suggestions[y] );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
141 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
142 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
143 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
144 return completions;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
145 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
146
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
147
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
148 },
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
149
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
150 match: function( sentence ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
151 // returns a float from 0 to 1 telling how good of a match the input
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
152 // is to this verb.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
153 if ( this._name.indexOf( sentence ) == 0 ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
154 // verb starts with the sentence, i.e. you may be typing this
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
155 // verb but haven't typed the full thing yet.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
156 return sentence.length / this._name.length;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
157 } else {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
158 return 0.0;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
159 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
160 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
161 };
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
162
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
163 var fly = new Verb( "fly", null, null, { "from": city, "to": city } );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
164 var define = new Verb( "define", "word", anyWord, {} );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
165 var google = new Verb( "google", "word", anyWord, {} );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
166 var go = new Verb( "go", "tab", tab, {} );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
167 var close = new Verb( "close", null, null, {} );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
168 var translate = new Verb( "translate", "text", anyWord, { "from": language, "to": language } );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
169 var nuke = new Verb( "nuke", "city", city, {} );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
170 var open = new Verb( "open", "url", anyWord, {} );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
171 var email = new Verb( "email", "text", anyWord, { "to": person, "subject": anyWord } );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
172 var encrypt = new Verb( "encrypt", "text", anyWord, { "for": person } );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
173 var wiki = new Verb( "wikipedia", "word", anyWord, { "language": language } );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
174
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
175 var verbs = [ fly, define, google, go, close, open, translate, email, nuke, encrypt, wiki ];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
176
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
177 /* Initial state: no verb determined.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
178 After each keypress, update verb suggestion list.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
179 After first spacebar: lock in top verb from suggestion list. Create
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
180 parsedSentence object based on verb. change state to sentence completion.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
181 Non-keystroke spaces after that:
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
182 spacebar sends the lock-in-last-word message to lockedInSentence.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
183
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
184 todo: add responder for arrow keys to hilight suggestions
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
185 and escape to clear text.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
186 */
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
187
1
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
188
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
189 function QuerySource() {
4
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
190 this._init( );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
191 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
192 QuerySource.prototype = {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
193 _init: function( ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
194 this._lockedInSentence = null;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
195 this._hilitedSuggestion = 0;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
196 this._suggestionList = [];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
197 },
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
198
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
199 updateSuggestionList: function( query ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
200 this._suggestionList = [];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
201 var completions = [];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
202 var words = query.split( " " );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
203 for ( var x in verbs ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
204 var verb = verbs[x];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
205 if ( verb.match( words[0] ) ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
206 completions = verb.getCompletions( words );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
207 this._suggestionList = this._suggestionList.concat( completions );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
208 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
209 } // TODO sort in order of match quality
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
210 this._hilitedSuggestion = 0;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
211 },
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
212
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
213 getSuggestions : function() {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
214 return this._suggestionList;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
215 },
1
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
216
4
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
217 indicationDown: function( ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
218 this._hilitedSuggestion ++;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
219 if ( this._hilitedSuggestion > this._suggestionList.length ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
220 this._hilitedSuggestion = 0;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
221 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
222 },
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
223
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
224 indicationUp: function() {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
225 this._hilitedSuggestion --;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
226 if ( this._hilitedSuggestion < 0 ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
227 this._hilitedSuggestion = this._suggestionList.length;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
228 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
229 },
1
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
230
4
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
231 getHilitedSuggestion: function() {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
232 return this._hilitedSuggestion - 1; // because 0 means no hilite
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
233 // and the suggestion list starts at 1... fencepost!
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
234 },
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
235
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
236 autocomplete: function( query ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
237 var hilited = this.getHilitedSuggestion();
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
238 if ( hilited > -1 ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
239 var newText = this._suggestionList[ hilited ] + " ";
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
240 } else {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
241 newText = query;
1
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
242 }
4
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
243 return newText;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
244 },
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
245
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
246 clear: function() {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
247 this._suggestionList = [];
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
248 this._hilitedSuggestion = 0;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
249 lockedInSentence = null;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
250 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
251 };
1
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
252
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
253 var gQs = new QuerySource();
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
254
4
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
255 function makeSuggestionHtml( tagName, list, hilitedNumber ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
256 var result = "";
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
257 var openingTag = "";
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
258 var closingTag = "</" + tagName + ">";
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
259
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
260 for (var i = 0; i < list.length; i++) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
261 if ( i == hilitedNumber ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
262 openingTag = "<" + tagName + " class=\"hilited\">";
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
263 } else {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
264 openingTag = "<" + tagName + ">";
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
265 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
266 result += (openingTag + list[i] + closingTag );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
267 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
268 return result;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
269 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
270
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
271 function updateDisplay( ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
272 var suggestions = gQs.getSuggestions();
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
273 var hilitedSuggestion = gQs.getHilitedSuggestion();
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
274 var ac = $("#autocomplete-popup");
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
275 ac.html( makeSuggestionHtml( "div", suggestions, hilitedSuggestion ) );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
276 ac.show();
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
277 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
278
1
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
279 function searchBoxQuery( event ) {
4
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
280 // TODO: if the event is an 'esc' key, clear the input field.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
281 // If the event is an 'up arrow' or 'down arrow' key, change the
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
282 // indication.
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
283
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
284 // key is event.which
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
285 // esc is 27
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
286 // up arrow is 38
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
287 // down arrow is 40
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
288 // enter is 13
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
289 // space is 32
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
290 switch( event.which ) {
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
291 case 27: //esc
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
292 event.target.value = "";
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
293 gQs.clear();
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
294 break;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
295 case 38: // up arrow
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
296 gQs.indicationUp();
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
297 break;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
298 case 40: // down arrow
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
299 gQs.indicationDown();
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
300 break;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
301 case 13: // enter
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
302 gQs.execute();
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
303 break;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
304 case 32: // spacebar
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
305 event.target.value = gQs.autocomplete( event.target.value );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
306 break;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
307 default:
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
308 gQs.updateSuggestionList( event.target.value );
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
309 break;
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
310 // todo: delete key "unlocks" if you delete past a space?
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
311 }
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
312
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
313 updateDisplay();
4ea09b7ce820 Added verbs and nouns and up/down arrows and space-to-autocomplete and suggestion list and escape-to-clear.
jonathandicarlo@jonathan-dicarlos-macbook-pro.local
parents: 1
diff changeset
314
1
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
315 }
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
316
0
9e6054e41bdc Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
317 $(document).ready( function() {
9e6054e41bdc Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
318 $("#search-box").focus();
1
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
319 $("#search-box").keyup( searchBoxQuery );
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
320 $("#autocomplete-popup").css(
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
321 "width",
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
322 $("#search-box").css("width")
a31bdc4de955 Added autocomplete popup and querysource class
Atul Varma <varmaa@toolness.com>
parents: 0
diff changeset
323 );
0
9e6054e41bdc Origination.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
324 });