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 |
(...skipping 19 matching lines...) Expand all Loading... |
30 | 30 |
31 /** | 31 /** |
32 * @const {string} | 32 * @const {string} |
33 * @private | 33 * @private |
34 */ | 34 */ |
35 cvox.BrailleTable.COMMON_DEFS_FILENAME_ = 'cvox-common.cti'; | 35 cvox.BrailleTable.COMMON_DEFS_FILENAME_ = 'cvox-common.cti'; |
36 | 36 |
37 | 37 |
38 /** | 38 /** |
39 * Retrieves a list of all available braille tables. | 39 * Retrieves a list of all available braille tables. |
40 * @param {function(!Array.<cvox.BrailleTable.Table>)} callback | 40 * @param {function(!Array<cvox.BrailleTable.Table>)} callback |
41 * Called asynchronously with an array of tables. | 41 * Called asynchronously with an array of tables. |
42 */ | 42 */ |
43 cvox.BrailleTable.getAll = function(callback) { | 43 cvox.BrailleTable.getAll = function(callback) { |
44 function appendCommonFilename(tables) { | 44 function appendCommonFilename(tables) { |
45 // Append the common definitions to all table filenames. | 45 // Append the common definitions to all table filenames. |
46 tables.forEach(function(table) { | 46 tables.forEach(function(table) { |
47 table.fileNames += (',' + cvox.BrailleTable.COMMON_DEFS_FILENAME_); | 47 table.fileNames += (',' + cvox.BrailleTable.COMMON_DEFS_FILENAME_); |
48 }); | 48 }); |
49 return tables; | 49 return tables; |
50 } | 50 } |
51 var url = chrome.extension.getURL(cvox.BrailleTable.TABLE_PATH); | 51 var url = chrome.extension.getURL(cvox.BrailleTable.TABLE_PATH); |
52 if (!url) { | 52 if (!url) { |
53 throw 'Invalid path: ' + cvox.BrailleTable.TABLE_PATH; | 53 throw 'Invalid path: ' + cvox.BrailleTable.TABLE_PATH; |
54 } | 54 } |
55 | 55 |
56 var xhr = new XMLHttpRequest(); | 56 var xhr = new XMLHttpRequest(); |
57 xhr.open('GET', url, true); | 57 xhr.open('GET', url, true); |
58 xhr.onreadystatechange = function() { | 58 xhr.onreadystatechange = function() { |
59 if (xhr.readyState == 4) { | 59 if (xhr.readyState == 4) { |
60 if (xhr.status == 200) { | 60 if (xhr.status == 200) { |
61 callback( | 61 callback( |
62 appendCommonFilename( | 62 appendCommonFilename( |
63 /** @type {!Array.<cvox.BrailleTable.Table>} */ ( | 63 /** @type {!Array<cvox.BrailleTable.Table>} */ ( |
64 JSON.parse(xhr.responseText)))); | 64 JSON.parse(xhr.responseText)))); |
65 } | 65 } |
66 } | 66 } |
67 }; | 67 }; |
68 xhr.send(); | 68 xhr.send(); |
69 }; | 69 }; |
70 | 70 |
71 | 71 |
72 /** | 72 /** |
73 * Finds a table in a list of tables by id. | 73 * Finds a table in a list of tables by id. |
74 * @param {!Array.<cvox.BrailleTable.Table>} tables tables to search in. | 74 * @param {!Array<cvox.BrailleTable.Table>} tables tables to search in. |
75 * @param {string} id id of table to find. | 75 * @param {string} id id of table to find. |
76 * @return {cvox.BrailleTable.Table} The found table, or null if not found. | 76 * @return {cvox.BrailleTable.Table} The found table, or null if not found. |
77 */ | 77 */ |
78 cvox.BrailleTable.forId = function(tables, id) { | 78 cvox.BrailleTable.forId = function(tables, id) { |
79 return tables.filter(function(table) { return table.id === id })[0] || null; | 79 return tables.filter(function(table) { return table.id === id })[0] || null; |
80 }; | 80 }; |
81 | 81 |
82 | 82 |
83 /** | 83 /** |
84 * Returns an uncontracted braille table corresponding to another, possibly | 84 * Returns an uncontracted braille table corresponding to another, possibly |
85 * contracted, table. If {@code table} is the lowest-grade table for its | 85 * contracted, table. If {@code table} is the lowest-grade table for its |
86 * locale and dot count, {@code table} itself is returned. | 86 * locale and dot count, {@code table} itself is returned. |
87 * @param {!Array.<cvox.BrailleTable.Table>} tables tables to search in. | 87 * @param {!Array<cvox.BrailleTable.Table>} tables tables to search in. |
88 * @param {!cvox.BrailleTable.Table} table Table to match. | 88 * @param {!cvox.BrailleTable.Table} table Table to match. |
89 * @return {!cvox.BrailleTable.Table} Corresponding uncontracted table, | 89 * @return {!cvox.BrailleTable.Table} Corresponding uncontracted table, |
90 * or {@code table} if it is uncontracted. | 90 * or {@code table} if it is uncontracted. |
91 */ | 91 */ |
92 cvox.BrailleTable.getUncontracted = function(tables, table) { | 92 cvox.BrailleTable.getUncontracted = function(tables, table) { |
93 function mostUncontractedOf(current, candidate) { | 93 function mostUncontractedOf(current, candidate) { |
94 // An 8 dot table for the same language is prefered over a 6 dot table | 94 // An 8 dot table for the same language is prefered over a 6 dot table |
95 // even if the locales differ by region. | 95 // even if the locales differ by region. |
96 if (current.dots === '6' && | 96 if (current.dots === '6' && |
97 candidate.dots === '8' && | 97 candidate.dots === '8' && |
(...skipping 26 matching lines...) Expand all Loading... |
124 return msgs.getMsg('braille_table_name_with_grade', | 124 return msgs.getMsg('braille_table_name_with_grade', |
125 [localeName, table.grade]); | 125 [localeName, table.grade]); |
126 } else if (!table.grade && table.variant) { | 126 } else if (!table.grade && table.variant) { |
127 return msgs.getMsg('braille_table_name_with_variant', | 127 return msgs.getMsg('braille_table_name_with_variant', |
128 [localeName, table.variant]); | 128 [localeName, table.variant]); |
129 } else { | 129 } else { |
130 return msgs.getMsg('braille_table_name_with_variant_and_grade', | 130 return msgs.getMsg('braille_table_name_with_variant_and_grade', |
131 [localeName, table.variant, table.grade]); | 131 [localeName, table.variant, table.grade]); |
132 } | 132 } |
133 }; | 133 }; |
OLD | NEW |