OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 | 5 |
6 /** | 6 /** |
7 * @fileoverview Uses ChromeVox API to access the search tools menu. | 7 * @fileoverview Uses ChromeVox API to access the search tools menu. |
8 */ | 8 */ |
9 | 9 |
10 goog.provide('cvox.SearchTool'); | 10 goog.provide('cvox.SearchTool'); |
11 | 11 |
12 goog.require('cvox.ChromeVox'); | 12 goog.require('cvox.ChromeVox'); |
13 goog.require('cvox.DomUtil'); | 13 goog.require('cvox.DomUtil'); |
14 goog.require('cvox.Search'); | 14 goog.require('cvox.Search'); |
15 goog.require('cvox.SearchConstants'); | 15 goog.require('cvox.SearchConstants'); |
16 goog.require('cvox.SearchUtil'); | 16 goog.require('cvox.SearchUtil'); |
17 | 17 |
18 /** | 18 /** |
19 * @constructor | 19 * @constructor |
20 */ | 20 */ |
21 cvox.SearchTool = function() { | 21 cvox.SearchTool = function() {}; |
22 }; | |
23 | 22 |
24 /** | 23 /** |
25 * Index of the current menu in focus. | 24 * Index of the current menu in focus. |
26 * @type {number} | 25 * @type {number} |
27 */ | 26 */ |
28 cvox.SearchTool.menuIndex; | 27 cvox.SearchTool.menuIndex; |
29 | 28 |
30 /** | 29 /** |
31 * Array of menus. | 30 * Array of menus. |
32 * @type {Array<Node>} | 31 * @type {Array<Node>} |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 var input = menuItem.querySelector(LOCATION_INPUT_ID); | 135 var input = menuItem.querySelector(LOCATION_INPUT_ID); |
137 /* Special case for setting location. */ | 136 /* Special case for setting location. */ |
138 if (input) { | 137 if (input) { |
139 input.focus(); | 138 input.focus(); |
140 return; | 139 return; |
141 } | 140 } |
142 | 141 |
143 /* Custom Date Range. */ | 142 /* Custom Date Range. */ |
144 var CDR_ID = 'cdr_opt'; | 143 var CDR_ID = 'cdr_opt'; |
145 switch (menuItem.id) { | 144 switch (menuItem.id) { |
146 case cvox.SearchTool.CLEAR_ID: | 145 case cvox.SearchTool.CLEAR_ID: |
147 window.location = menuItem.dataset.url; | 146 window.location = menuItem.dataset.url; |
148 break; | 147 break; |
149 case CDR_ID: | 148 case CDR_ID: |
150 var CDR_LINK_SELECTOR = '#cdrlnk'; | 149 var CDR_LINK_SELECTOR = '#cdrlnk'; |
151 var cdrLink = menuItem.querySelector(CDR_LINK_SELECTOR); | 150 var cdrLink = menuItem.querySelector(CDR_LINK_SELECTOR); |
152 cvox.DomUtil.clickElem(cdrLink, false, false, false); | 151 cvox.DomUtil.clickElem(cdrLink, false, false, false); |
153 cvox.SearchTool.toggleMenu(); | 152 cvox.SearchTool.toggleMenu(); |
154 break; | 153 break; |
155 default: | 154 default: |
156 window.location = cvox.SearchUtil.extractURL(menuItem); | 155 window.location = cvox.SearchUtil.extractURL(menuItem); |
157 break; | 156 break; |
158 } | 157 } |
159 }; | 158 }; |
160 | 159 |
161 /** | 160 /** |
162 * Handles key events for the tools interface. | 161 * Handles key events for the tools interface. |
163 * @param {Event} evt Keydown event. | 162 * @param {Event} evt Keydown event. |
164 * @return {boolean} True if key was handled, false otherwise. | 163 * @return {boolean} True if key was handled, false otherwise. |
165 */ | 164 */ |
166 cvox.SearchTool.keyhandler = function(evt) { | 165 cvox.SearchTool.keyhandler = function(evt) { |
167 if (cvox.SearchUtil.isSearchWidgetActive()) { | 166 if (cvox.SearchUtil.isSearchWidgetActive()) { |
168 return false; | 167 return false; |
169 } | 168 } |
170 | 169 |
171 switch (evt.keyCode) { | 170 switch (evt.keyCode) { |
172 case cvox.SearchConstants.KeyCode.UP: | 171 case cvox.SearchConstants.KeyCode.UP: |
173 cvox.SearchTool.menuItemIndex = cvox.SearchUtil.subOneWrap( | 172 cvox.SearchTool.menuItemIndex = cvox.SearchUtil.subOneWrap( |
174 cvox.SearchTool.menuItemIndex, cvox.SearchTool.menuItems.length); | 173 cvox.SearchTool.menuItemIndex, cvox.SearchTool.menuItems.length); |
175 cvox.SearchTool.syncToMenuItem(); | 174 cvox.SearchTool.syncToMenuItem(); |
176 break; | 175 break; |
177 | 176 |
178 case cvox.SearchConstants.KeyCode.DOWN: | 177 case cvox.SearchConstants.KeyCode.DOWN: |
179 cvox.SearchTool.menuItemIndex = cvox.SearchUtil.addOneWrap( | 178 cvox.SearchTool.menuItemIndex = cvox.SearchUtil.addOneWrap( |
180 cvox.SearchTool.menuItemIndex, cvox.SearchTool.menuItems.length); | 179 cvox.SearchTool.menuItemIndex, cvox.SearchTool.menuItems.length); |
181 cvox.SearchTool.syncToMenuItem(); | 180 cvox.SearchTool.syncToMenuItem(); |
182 break; | 181 break; |
183 | 182 |
184 case cvox.SearchConstants.KeyCode.LEFT: | 183 case cvox.SearchConstants.KeyCode.LEFT: |
185 cvox.SearchTool.toggleMenu(); | 184 cvox.SearchTool.toggleMenu(); |
186 cvox.SearchTool.menuIndex = cvox.SearchUtil.subOneWrap( | 185 cvox.SearchTool.menuIndex = cvox.SearchUtil.subOneWrap( |
187 cvox.SearchTool.menuIndex, cvox.SearchTool.menus.length); | 186 cvox.SearchTool.menuIndex, cvox.SearchTool.menus.length); |
188 cvox.SearchTool.syncToMenu(); | 187 cvox.SearchTool.syncToMenu(); |
189 break; | 188 break; |
190 | 189 |
191 case cvox.SearchConstants.KeyCode.RIGHT: | 190 case cvox.SearchConstants.KeyCode.RIGHT: |
192 cvox.SearchTool.toggleMenu(); | 191 cvox.SearchTool.toggleMenu(); |
193 cvox.SearchTool.menuIndex = cvox.SearchUtil.addOneWrap( | 192 cvox.SearchTool.menuIndex = cvox.SearchUtil.addOneWrap( |
194 cvox.SearchTool.menuIndex, cvox.SearchTool.menus.length); | 193 cvox.SearchTool.menuIndex, cvox.SearchTool.menus.length); |
195 cvox.SearchTool.syncToMenu(); | 194 cvox.SearchTool.syncToMenu(); |
196 break; | 195 break; |
197 | 196 |
198 case cvox.SearchConstants.KeyCode.ENTER: | 197 case cvox.SearchConstants.KeyCode.ENTER: |
199 cvox.SearchTool.gotoMenuItem(); | 198 cvox.SearchTool.gotoMenuItem(); |
200 break; | 199 break; |
201 | 200 |
202 default: | 201 default: |
203 return false; | 202 return false; |
204 } | 203 } |
205 evt.preventDefault(); | 204 evt.preventDefault(); |
206 evt.stopPropagation(); | 205 evt.stopPropagation(); |
207 return true; | 206 return true; |
208 }; | 207 }; |
OLD | NEW |