blob: ea52142dc0599e9e9a70a5884ac62f341972d248 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Defines global variables.
var commands = TaskManagerCommands;
var taskmanager = undefined; // This will be instantiated in main.js.
/**
* Invoked when a range of items has changed.
* @param {Integer} start The start position of tasks to be changed
* @param {Integer} length The length of tasks to be changed
* @param {Array of task} tasks The array of updated task
*/
function taskChanged(start, length, tasks) {
var task = {type: 'change', start: start, length: length, tasks: tasks};
if (taskmanager) taskmanager.processTaskChange(task);
}
// Cached list of enabled columns to prevent frequent access to localStorage.
var cachedEnabledColumns;
/**
* @return {Dictionary} the dictionary which contains the list of columns and
* whether each column is enabled or not.
*/
function getEnabledColumns() {
// Use the cache after the second time since access to localStorage is slow.
if (cachedEnabledColumns)
return cachedEnabledColumns;
var json = window.localStorage.getItem(ENABLED_COLUMNS_KEY);
try {
cachedEnabledColumns = JSON.parse(json) || {};
} catch (e) {
cachedEnabledColumns = {};
}
for (var i = 0; i < DEFAULT_COLUMNS.length; i++) {
if (typeof(cachedEnabledColumns[DEFAULT_COLUMNS[i][0]]) == 'undefined')
cachedEnabledColumns[DEFAULT_COLUMNS[i][0]] = DEFAULT_COLUMNS[i][3];
}
return cachedEnabledColumns;
}
/**
* @return {boolean} the given column (at |columnId|) is enabled or not.
* @param {string} columnId The ID of the collumn to be checked.
*/
function isColumnEnabled(columnId) {
return (getEnabledColumns())[columnId];
}
/**
* Sets the given column either enabled or disabled.
* @param {string} columnId The ID of the collumn to be set.
* @param {boolean} newChecked True, to set the column enable. False otherwise.
*/
function setColumnEnabled(columnId, newChecked) {
commands.setUpdateColumn(columnId, newChecked);
cachedEnabledColumns[columnId] = newChecked;
var json = JSON.stringify(cachedEnabledColumns);
window.localStorage.setItem(ENABLED_COLUMNS_KEY, json);
}
// Enable the taskmanager model before the loading of scripts.
(function() {
for (var i = 0; i < DEFAULT_COLUMNS.length; i++) {
var columnId = DEFAULT_COLUMNS[i][0];
if (isColumnEnabled(columnId))
commands.setUpdateColumn(columnId, true);
}
commands.enableTaskManager();
commands.setUpdateColumn('canInspect', true);
commands.setUpdateColumn('canActivate', true);
})();