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