| 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 * @fileoverview Holds information about a braille table. | 6 * @fileoverview Holds information about a braille table. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 goog.provide('cvox.BrailleTable'); | 9 goog.provide('cvox.BrailleTable'); |
| 10 | 10 |
| 11 | 11 |
| 12 /** | 12 /** |
| 13 * @typedef {{ | 13 * @typedef {{ |
| 14 * locale:string, | 14 * locale:string, |
| 15 * dots:string, | 15 * dots:string, |
| 16 * id:string, | 16 * id:string, |
| 17 * grade:(string|undefined), | 17 * grade:(string|undefined), |
| 18 * variant:(string|undefined), | 18 * variant:(string|undefined), |
| 19 * fileName:string | 19 * fileNames:string |
| 20 * }} | 20 * }} |
| 21 */ | 21 */ |
| 22 cvox.BrailleTable.Table; | 22 cvox.BrailleTable.Table; |
| 23 | 23 |
| 24 | 24 |
| 25 /** | 25 /** |
| 26 * @const {string} | 26 * @const {string} |
| 27 */ | 27 */ |
| 28 cvox.BrailleTable.TABLE_PATH = 'chromevox/background/braille/tables.json'; | 28 cvox.BrailleTable.TABLE_PATH = 'chromevox/background/braille/tables.json'; |
| 29 | 29 |
| 30 | 30 |
| 31 /** | 31 /** |
| 32 * @const {string} |
| 33 * @private |
| 34 */ |
| 35 cvox.BrailleTable.COMMON_DEFS_FILENAME_ = 'cvox-common.cti'; |
| 36 |
| 37 |
| 38 /** |
| 32 * Retrieves a list of all available braille tables. | 39 * Retrieves a list of all available braille tables. |
| 33 * @param {function(!Array.<cvox.BrailleTable.Table>)} callback | 40 * @param {function(!Array.<cvox.BrailleTable.Table>)} callback |
| 34 */ | 41 */ |
| 35 cvox.BrailleTable.getAll = function(callback) { | 42 cvox.BrailleTable.getAll = function(callback) { |
| 43 function appendCommonFilename(tables) { |
| 44 // Append the common definitions to all table filenames. |
| 45 tables.forEach(function(table) { |
| 46 table.fileNames += (',' + cvox.BrailleTable.COMMON_DEFS_FILENAME_); |
| 47 }); |
| 48 return tables; |
| 49 } |
| 36 var url = chrome.extension.getURL(cvox.BrailleTable.TABLE_PATH); | 50 var url = chrome.extension.getURL(cvox.BrailleTable.TABLE_PATH); |
| 37 if (!url) { | 51 if (!url) { |
| 38 throw 'Invalid path: ' + cvox.BrailleTable.TABLE_PATH; | 52 throw 'Invalid path: ' + cvox.BrailleTable.TABLE_PATH; |
| 39 } | 53 } |
| 40 | 54 |
| 41 var xhr = new XMLHttpRequest(); | 55 var xhr = new XMLHttpRequest(); |
| 42 xhr.open('GET', url, true); | 56 xhr.open('GET', url, true); |
| 43 xhr.onreadystatechange = function() { | 57 xhr.onreadystatechange = function() { |
| 44 if (xhr.readyState == 4) { | 58 if (xhr.readyState == 4) { |
| 45 if (xhr.status == 200) { | 59 if (xhr.status == 200) { |
| 46 callback(/** @type {!Array.<cvox.BrailleTable.Table>} */ ( | 60 callback( |
| 47 JSON.parse(xhr.responseText))); | 61 appendCommonFilename( |
| 62 /** @type {!Array.<cvox.BrailleTable.Table>} */ ( |
| 63 JSON.parse(xhr.responseText)))); |
| 48 } | 64 } |
| 49 } | 65 } |
| 50 }; | 66 }; |
| 51 xhr.send(); | 67 xhr.send(); |
| 52 }; | 68 }; |
| 53 | 69 |
| 54 | 70 |
| 55 /** | 71 /** |
| 56 * Finds a table in a list of tables by id. | 72 * Finds a table in a list of tables by id. |
| 57 * @param {!Array.<cvox.BrailleTable.Table>} tables tables to search in. | 73 * @param {!Array.<cvox.BrailleTable.Table>} tables tables to search in. |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 return msgs.getMsg('braille_table_name_with_grade', | 123 return msgs.getMsg('braille_table_name_with_grade', |
| 108 [localeName, table.grade]); | 124 [localeName, table.grade]); |
| 109 } else if (!table.grade && table.variant) { | 125 } else if (!table.grade && table.variant) { |
| 110 return msgs.getMsg('braille_table_name_with_variant', | 126 return msgs.getMsg('braille_table_name_with_variant', |
| 111 [localeName, table.variant]); | 127 [localeName, table.variant]); |
| 112 } else { | 128 } else { |
| 113 return msgs.getMsg('braille_table_name_with_variant_and_grade', | 129 return msgs.getMsg('braille_table_name_with_variant_and_grade', |
| 114 [localeName, table.variant, table.grade]); | 130 [localeName, table.variant, table.grade]); |
| 115 } | 131 } |
| 116 }; | 132 }; |
| OLD | NEW |