Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Side by Side Diff: chrome/browser/resources/task_manager/main.js

Issue 9543002: WebUI TaskManager: Remember column settings (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review fix Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 /** @constructor */ 5 /** @constructor */
6 function TaskManager() { } 6 function TaskManager() { }
7 7
8 cr.addSingletonGetter(TaskManager); 8 cr.addSingletonGetter(TaskManager);
9 9
10 var localStrings = new LocalStrings(); 10 var localStrings = new LocalStrings();
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 measureTime.startInterval('Load.DOM'); 84 measureTime.startInterval('Load.DOM');
85 85
86 this.opt_ = opt; 86 this.opt_ = opt;
87 87
88 this.initialized_ = true; 88 this.initialized_ = true;
89 89
90 this.elementsCache_ = {}; 90 this.elementsCache_ = {};
91 this.dialogDom_ = dialogDom; 91 this.dialogDom_ = dialogDom;
92 this.document_ = dialogDom.ownerDocument; 92 this.document_ = dialogDom.ownerDocument;
93 93
94 this.is_column_shown_ = [];
95 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) {
96 this.is_column_shown_[i] = DEFAULT_COLUMNS[i][3];
97 }
98
99 this.localized_column_ = []; 94 this.localized_column_ = [];
100 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { 95 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) {
101 var column_label_id = DEFAULT_COLUMNS[i][1]; 96 var column_label_id = DEFAULT_COLUMNS[i][1];
102 var localized_label = localStrings.getString(column_label_id); 97 var localized_label = localStrings.getString(column_label_id);
103 // Falls back to raw column_label_id if localized string is not defined. 98 // Falls back to raw column_label_id if localized string is not defined.
104 if (localized_label == "") 99 if (localized_label == "")
105 localized_label = column_label_id; 100 localized_label = column_label_id;
106 101
107 this.localized_column_[i] = localized_label; 102 this.localized_column_[i] = localized_label;
108 } 103 }
(...skipping 29 matching lines...) Expand all
138 var aValue = aValues && aValues[0] || 0; 133 var aValue = aValues && aValues[0] || 0;
139 var bvalue = bValues && bValues[0] || 0; 134 var bvalue = bValues && bValues[0] || 0;
140 return dm.defaultValuesCompareFunction(aValue, bvalue); 135 return dm.defaultValuesCompareFunction(aValue, bvalue);
141 }; 136 };
142 })(); 137 })();
143 dm.setCompareFunction(columnId, compareFunc); 138 dm.setCompareFunction(columnId, compareFunc);
144 } 139 }
145 140
146 this.initTable_(); 141 this.initTable_();
147 142
148 // enableTaskManager() must be called after enabling columns using
149 // setUpdateColumn() because it is necessary to tell the handler which
150 // columns to display before updating.
151 commands.enableTaskManager(); 143 commands.enableTaskManager();
152 144
153 // Populate the static localized strings. 145 // Populate the static localized strings.
154 i18nTemplate.process(this.document_, templateData); 146 i18nTemplate.process(this.document_, templateData);
155 147
156 measureTime.recordInterval('Load.DOM'); 148 measureTime.recordInterval('Load.DOM');
157 measureTime.recordInterval('Load.Total'); 149 measureTime.recordInterval('Load.Total');
158 150
159 loadDelayedIncludes(this); 151 loadDelayedIncludes(this);
160 }, 152 },
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 } 204 }
213 } 205 }
214 206
215 this.isFinishedInitDelayed_ = true; 207 this.isFinishedInitDelayed_ = true;
216 this.table_.redraw(); 208 this.table_.redraw();
217 }, 209 },
218 210
219 initColumnModel_: function () { 211 initColumnModel_: function () {
220 var table_columns = new Array(); 212 var table_columns = new Array();
221 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { 213 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) {
222 if (!this.is_column_shown_[i]) 214 var column = DEFAULT_COLUMNS[i];
215 var columnId = column[0];
216 if (!isColumnEnabled(columnId))
223 continue; 217 continue;
224 218
225 var column = DEFAULT_COLUMNS[i];
226 var columnId = column[0];
227 table_columns.push(new cr.ui.table.TableColumn(columnId, 219 table_columns.push(new cr.ui.table.TableColumn(columnId,
228 this.localized_column_[i], 220 this.localized_column_[i],
229 column[2])); 221 column[2]));
230 } 222 }
231 223
232 for (var i = 0; i < table_columns.length; i++) { 224 for (var i = 0; i < table_columns.length; i++) {
233 table_columns[i].renderFunction = this.renderColumn_.bind(this); 225 table_columns[i].renderFunction = this.renderColumn_.bind(this);
234 } 226 }
235 227
236 this.columnModel_ = new cr.ui.table.TableColumnModel(table_columns); 228 this.columnModel_ = new cr.ui.table.TableColumnModel(table_columns);
(...skipping 14 matching lines...) Expand all
251 command.id = COMMAND_CONTEXTMENU_COLUMN_PREFIX + '-' + column[0]; 243 command.id = COMMAND_CONTEXTMENU_COLUMN_PREFIX + '-' + column[0];
252 cr.ui.Command.decorate(command); 244 cr.ui.Command.decorate(command);
253 this.column_menu_commands_[command.id] = command; 245 this.column_menu_commands_[command.id] = command;
254 this.commandsElement_.appendChild(command); 246 this.commandsElement_.appendChild(command);
255 247
256 // Creates menuitem element. 248 // Creates menuitem element.
257 var item = this.document_.createElement('menuitem'); 249 var item = this.document_.createElement('menuitem');
258 item.command = command; 250 item.command = command;
259 command.menuitem = item; 251 command.menuitem = item;
260 item.textContent = this.localized_column_[i]; 252 item.textContent = this.localized_column_[i];
261 if (this.is_column_shown_[i]) 253 if (isColumnEnabled(column[0]))
262 item.setAttributeNode(this.document_.createAttribute("checked")); 254 item.setAttributeNode(this.document_.createAttribute("checked"));
263 this.columnSelectContextMenu_.appendChild(item); 255 this.columnSelectContextMenu_.appendChild(item);
264 } 256 }
265 257
266 this.document_.body.appendChild(this.columnSelectContextMenu_); 258 this.document_.body.appendChild(this.columnSelectContextMenu_);
267 cr.ui.Menu.decorate(this.columnSelectContextMenu_); 259 cr.ui.Menu.decorate(this.columnSelectContextMenu_);
268 260
269 cr.ui.contextMenuHandler.setContextMenu(this.table_.header, 261 cr.ui.contextMenuHandler.setContextMenu(this.table_.header,
270 this.columnSelectContextMenu_); 262 this.columnSelectContextMenu_);
271 cr.ui.contextMenuHandler.setContextMenu(this.table_.list, 263 cr.ui.contextMenuHandler.setContextMenu(this.table_.list,
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 626
635 // Enables if the page can be inspected. 627 // Enables if the page can be inspected.
636 if (target.data['canInspect'][index_in_group]) 628 if (target.data['canInspect'][index_in_group])
637 inspect_menuitem.disabled = false; 629 inspect_menuitem.disabled = false;
638 630
639 // Enables if the page can be activated. 631 // Enables if the page can be activated.
640 if (target.data['canActivate'][index_in_group]) 632 if (target.data['canActivate'][index_in_group])
641 activate_menuitem.disabled = false; 633 activate_menuitem.disabled = false;
642 }, 634 },
643 635
644 onColumnContextMenu_: function(id, command) { 636 onColumnContextMenu_: function(columnId, command) {
645 var menuitem = command.menuitem; 637 var menuitem = command.menuitem;
646 var checked_item_count = 0; 638 var checkedItemCount = 0;
647 var is_uncheck = 0; 639 var checked = isColumnEnabled(columnId);
648 640
649 // Leaves a item visible when user tries making invisible but it is the 641 // Leaves a item visible when user tries making invisible but it is the
650 // last one. 642 // last one.
651 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { 643 var enabledColumns = getEnabledColumns();
652 var column = DEFAULT_COLUMNS[i]; 644 for (var id in enabledColumns) {
653 if (column[0] == id && this.is_column_shown_[i]) { 645 if (enabledColumns[id])
654 is_uncheck = 1; 646 checkedItemCount++;
655 }
656 if (this.is_column_shown_[i])
657 checked_item_count++;
658 } 647 }
659 if (checked_item_count == 1 && is_uncheck) { 648 if (checkedItemCount == 1 && checked)
660 return; 649 return;
661 }
662 650
663 // Toggles the visibility of the column. 651 // Toggles the visibility of the column.
664 for (var i = 0; i < DEFAULT_COLUMNS.length; i++) { 652 var newChecked = !checked;
665 var column = DEFAULT_COLUMNS[i]; 653 menuitem.checked = newChecked;
666 if (column[0] == id) { 654 setColumnEnabled(columnId, newChecked);
667 this.is_column_shown_[i] = !this.is_column_shown_[i];
668 var checked = this.is_column_shown_[i];
669 menuitem.checked = checked;
670 this.initColumnModel_()
671 this.table_.columnModel = this.columnModel_;
672 this.table_.redraw();
673 655
674 commands.setUpdateColumn(column[0], checked); 656 this.initColumnModel_()
675 return; 657 this.table_.columnModel = this.columnModel_;
676 } 658 this.table_.redraw();
677 }
678 }, 659 },
679 }; 660 };
680 661
681 // |taskmanager| has been declared in preload.js. 662 // |taskmanager| has been declared in preload.js.
682 taskmanager = TaskManager.getInstance(); 663 taskmanager = TaskManager.getInstance();
683 664
684 function init() { 665 function init() {
685 var params = parseQueryParams(window.location); 666 var params = parseQueryParams(window.location);
686 var opt = {}; 667 var opt = {};
687 opt['isShowTitle'] = params.showtitle; 668 opt['isShowTitle'] = params.showtitle;
688 opt['isBackgroundMode'] = params.background; 669 opt['isBackgroundMode'] = params.background;
689 opt['isShowCloseButton'] = params.showclose; 670 opt['isShowCloseButton'] = params.showclose;
690 taskmanager.initialize(document.body, opt); 671 taskmanager.initialize(document.body, opt);
691 } 672 }
692 673
693 document.addEventListener('DOMContentLoaded', init); 674 document.addEventListener('DOMContentLoaded', init);
694 document.addEventListener('Close', taskmanager.onClose.bind(taskmanager)); 675 document.addEventListener('Close', taskmanager.onClose.bind(taskmanager));
OLDNEW
« no previous file with comments | « chrome/browser/resources/task_manager/defines.js ('k') | chrome/browser/resources/task_manager/preload.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698