| 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 'use strict'; | 5 'use strict'; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * TODO(dzvorygin): Here we use this hack, since 'hidden' is standard | 8 * TODO(dzvorygin): Here we use this hack, since 'hidden' is standard |
| 9 * attribute and we can't use it's setter as usual. | 9 * attribute and we can't use it's setter as usual. |
| 10 * @param {boolean} value New value of hidden property. | 10 * @param {boolean} value New value of hidden property. |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 */ | 232 */ |
| 233 this.fileManager_ = fileManager; | 233 this.fileManager_ = fileManager; |
| 234 | 234 |
| 235 /** | 235 /** |
| 236 * Command elements. | 236 * Command elements. |
| 237 * @type {Object.<string, cr.ui.Command>} | 237 * @type {Object.<string, cr.ui.Command>} |
| 238 * @private | 238 * @private |
| 239 */ | 239 */ |
| 240 this.commands_ = {}; | 240 this.commands_ = {}; |
| 241 | 241 |
| 242 /** | |
| 243 * Whether the ctrl key is pressed or not. | |
| 244 * @type {boolean} | |
| 245 * @private | |
| 246 */ | |
| 247 this.ctrlKeyPressed_ = false; | |
| 248 | |
| 249 Object.seal(this); | 242 Object.seal(this); |
| 250 | 243 |
| 251 // Decorate command tags in the document. | 244 // Decorate command tags in the document. |
| 252 var commands = fileManager.document.querySelectorAll('command'); | 245 var commands = fileManager.document.querySelectorAll('command'); |
| 253 for (var i = 0; i < commands.length; i++) { | 246 for (var i = 0; i < commands.length; i++) { |
| 254 cr.ui.Command.decorate(commands[i]); | 247 cr.ui.Command.decorate(commands[i]); |
| 255 this.commands_[commands[i].id] = commands[i]; | 248 this.commands_[commands[i].id] = commands[i]; |
| 256 } | 249 } |
| 257 | 250 |
| 258 // Register events. | 251 // Register events. |
| 259 fileManager.document.addEventListener('command', this.onCommand_.bind(this)); | 252 fileManager.document.addEventListener('command', this.onCommand_.bind(this)); |
| 260 fileManager.document.addEventListener('canExecute', | 253 fileManager.document.addEventListener('canExecute', |
| 261 this.onCanExecute_.bind(this)); | 254 this.onCanExecute_.bind(this)); |
| 262 fileManager.document.addEventListener('keydown', this.onKeyDown_.bind(this)); | |
| 263 fileManager.document.addEventListener('keyup', this.onKeyUp_.bind(this)); | |
| 264 }; | 255 }; |
| 265 | 256 |
| 266 /** | 257 /** |
| 267 * Updates the availability of all commands. | 258 * Updates the availability of all commands. |
| 268 */ | 259 */ |
| 269 CommandHandler.prototype.updateAvailability = function() { | 260 CommandHandler.prototype.updateAvailability = function() { |
| 270 for (var id in this.commands_) { | 261 for (var id in this.commands_) { |
| 271 this.commands_[id].canExecuteChange(); | 262 this.commands_[id].canExecuteChange(); |
| 272 } | 263 } |
| 273 }; | 264 }; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 * @private | 296 * @private |
| 306 */ | 297 */ |
| 307 CommandHandler.prototype.onCanExecute_ = function(event) { | 298 CommandHandler.prototype.onCanExecute_ = function(event) { |
| 308 if (this.shouldIgnoreEvents_()) | 299 if (this.shouldIgnoreEvents_()) |
| 309 return; | 300 return; |
| 310 var handler = CommandHandler.COMMANDS_[event.command.id]; | 301 var handler = CommandHandler.COMMANDS_[event.command.id]; |
| 311 handler.canExecute.call(this, event, this.fileManager_); | 302 handler.canExecute.call(this, event, this.fileManager_); |
| 312 }; | 303 }; |
| 313 | 304 |
| 314 /** | 305 /** |
| 315 * Handle key down event. | |
| 316 * @param {Event} event Key down event. | |
| 317 * @private | |
| 318 */ | |
| 319 CommandHandler.prototype.onKeyDown_ = function(event) { | |
| 320 // 17 is the keycode of Ctrl key and it means the event is not for other keys | |
| 321 // with Ctrl modifier but for ctrl key itself. | |
| 322 if (util.getKeyModifiers(event) + event.keyCode == 'Ctrl-17') { | |
| 323 this.ctrlKeyPressed_ = true; | |
| 324 this.updateAvailability(); | |
| 325 } | |
| 326 }; | |
| 327 | |
| 328 /** | |
| 329 * Handle key up event. | |
| 330 * @param {Event} event Key up event. | |
| 331 * @private | |
| 332 */ | |
| 333 CommandHandler.prototype.onKeyUp_ = function(event) { | |
| 334 // 17 is the keycode of Ctrl key and it means the event is not for other keys | |
| 335 // with Ctrl modifier but for ctrl key itself. | |
| 336 if (util.getKeyModifiers(event) + event.keyCode == '17') { | |
| 337 this.ctrlKeyPressed_ = false; | |
| 338 this.updateAvailability(); | |
| 339 } | |
| 340 }; | |
| 341 | |
| 342 /** | |
| 343 * Commands. | 306 * Commands. |
| 344 * @type {Object.<string, Command>} | 307 * @type {Object.<string, Command>} |
| 345 * @const | 308 * @const |
| 346 * @private | 309 * @private |
| 347 */ | 310 */ |
| 348 CommandHandler.COMMANDS_ = {}; | 311 CommandHandler.COMMANDS_ = {}; |
| 349 | 312 |
| 350 /** | 313 /** |
| 351 * Unmounts external drive. | 314 * Unmounts external drive. |
| 352 * @type {Command} | 315 * @type {Command} |
| (...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 832 /** | 795 /** |
| 833 * Reset the zoom factor. | 796 * Reset the zoom factor. |
| 834 * @type {Command} | 797 * @type {Command} |
| 835 */ | 798 */ |
| 836 CommandHandler.COMMANDS_['zoom-reset'] = { | 799 CommandHandler.COMMANDS_['zoom-reset'] = { |
| 837 execute: function(event, fileManager) { | 800 execute: function(event, fileManager) { |
| 838 chrome.fileBrowserPrivate.zoom('reset'); | 801 chrome.fileBrowserPrivate.zoom('reset'); |
| 839 }, | 802 }, |
| 840 canExecute: CommandUtil.canExecuteAlways | 803 canExecute: CommandUtil.canExecuteAlways |
| 841 }; | 804 }; |
| OLD | NEW |