Mercurial > hip
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 |
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 | 317 $(document).ready( function() { |
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 | 324 }); |