OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // Defines global variables. | 5 // Defines global variables. |
6 var commands = TaskManagerCommands; | 6 var commands = TaskManagerCommands; |
7 var taskmanager = undefined; // This will be instantiated in main.js. | 7 var taskmanager = undefined; // This will be instantiated in main.js. |
8 | 8 |
9 /** | 9 /** |
10 * Invoked when a range of items has changed. | 10 * Invoked when a range of items has changed. |
| 11 * @param {Integer} start The start position of tasks to be changed |
| 12 * @param {Integer} length The length of tasks to be changed |
| 13 * @param {Array of task} tasks The array of updated task |
11 */ | 14 */ |
12 function taskChanged(start, length, tasks) { | 15 function taskChanged(start, length, tasks) { |
13 var task = {type: 'change', start: start, length: length, tasks: tasks}; | 16 var task = {type: 'change', start: start, length: length, tasks: tasks}; |
14 | 17 |
15 if (taskmanager) taskmanager.processTaskChange(task); | 18 if (taskmanager) taskmanager.processTaskChange(task); |
16 } | 19 } |
17 | 20 |
18 // Cached list of enabled columns to prevent frequent access to localStorage. | 21 // Cached list of enabled columns to prevent frequent access to localStorage. |
19 var cachedEnabledColumns; | 22 var cachedEnabledColumns; |
20 | 23 |
21 /** | 24 /** |
22 * Returns the dictionary which contains the list of columns and whether each | 25 * @return {Dictionary} the dictionary which contains the list of columns and |
23 * column is enabled or not. | 26 * whether each column is enabled or not. |
24 */ | 27 */ |
25 function getEnabledColumns() { | 28 function getEnabledColumns() { |
26 // Use the cache after the second time since access to localStorage is slow. | 29 // Use the cache after the second time since access to localStorage is slow. |
27 if (cachedEnabledColumns) | 30 if (cachedEnabledColumns) |
28 return cachedEnabledColumns; | 31 return cachedEnabledColumns; |
29 | 32 |
30 var json = window.localStorage.getItem(ENABLED_COLUMNS_KEY); | 33 var json = window.localStorage.getItem(ENABLED_COLUMNS_KEY); |
31 try { | 34 try { |
32 cachedEnabledColumns = JSON.parse(json) || {}; | 35 cachedEnabledColumns = JSON.parse(json) || {}; |
33 } catch (e) { | 36 } catch (e) { |
34 cachedEnabledColumns = {}; | 37 cachedEnabledColumns = {}; |
35 } | 38 } |
36 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { | 39 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { |
37 if (typeof(cachedEnabledColumns[DEFAULT_COLUMNS[i][0]]) == 'undefined') | 40 if (typeof(cachedEnabledColumns[DEFAULT_COLUMNS[i][0]]) == 'undefined') |
38 cachedEnabledColumns[DEFAULT_COLUMNS[i][0]] = DEFAULT_COLUMNS[i][3]; | 41 cachedEnabledColumns[DEFAULT_COLUMNS[i][0]] = DEFAULT_COLUMNS[i][3]; |
39 } | 42 } |
40 return cachedEnabledColumns; | 43 return cachedEnabledColumns; |
41 } | 44 } |
42 | 45 |
43 /** | 46 /** |
44 * Returns whether the given column (at |columnId|) is enabled or not. | 47 * @return {Boolean} the given column (at |columnId|) is enabled or not. |
| 48 * @param {String} columnId The ID of the collumn to be checked. |
45 */ | 49 */ |
46 function isColumnEnabled(columnId) { | 50 function isColumnEnabled(columnId) { |
47 return (getEnabledColumns())[columnId]; | 51 return (getEnabledColumns())[columnId]; |
48 } | 52 } |
49 | 53 |
50 /** | 54 /** |
51 * Sets whether the given column is enabled or not. | 55 * Sets the given column either enabled or disabled. |
| 56 * @param {String} columnId The ID of the collumn to be set. |
| 57 * @param {Boolean} newChecked True, to set the column enable. False otherwise. |
52 */ | 58 */ |
53 function setColumnEnabled(columnId, newChecked) { | 59 function setColumnEnabled(columnId, newChecked) { |
54 commands.setUpdateColumn(columnId, newChecked); | 60 commands.setUpdateColumn(columnId, newChecked); |
55 cachedEnabledColumns[columnId] = newChecked; | 61 cachedEnabledColumns[columnId] = newChecked; |
56 var json = JSON.stringify(cachedEnabledColumns); | 62 var json = JSON.stringify(cachedEnabledColumns); |
57 window.localStorage.setItem(ENABLED_COLUMNS_KEY, json); | 63 window.localStorage.setItem(ENABLED_COLUMNS_KEY, json); |
58 } | 64 } |
59 | 65 |
60 // Enable the taskmanager model before the loading of scripts. | 66 // Enable the taskmanager model before the loading of scripts. |
61 (function () { | 67 (function() { |
62 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { | 68 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { |
63 var columnId = DEFAULT_COLUMNS[i][0]; | 69 var columnId = DEFAULT_COLUMNS[i][0]; |
64 if (isColumnEnabled(columnId)) | 70 if (isColumnEnabled(columnId)) |
65 commands.setUpdateColumn(columnId, true); | 71 commands.setUpdateColumn(columnId, true); |
66 } | 72 } |
67 commands.enableTaskManager(); | 73 commands.enableTaskManager(); |
68 commands.setUpdateColumn('canInspect', true); | 74 commands.setUpdateColumn('canInspect', true); |
69 commands.setUpdateColumn('canActivate', true); | 75 commands.setUpdateColumn('canActivate', true); |
70 })(); | 76 })(); |
OLD | NEW |