| 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 |