| 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 * The current selection object. | 8 * The current selection object. |
| 9 * | 9 * |
| 10 * @param {FileManager} fileManager FileManager instance. | 10 * @param {FileManager} fileManager FileManager instance. |
| (...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 | 469 |
| 470 /** | 470 /** |
| 471 * Calculates async selection stats and updates secondary UI elements. | 471 * Calculates async selection stats and updates secondary UI elements. |
| 472 * | 472 * |
| 473 * @param {FileSelection} selection The selection object. | 473 * @param {FileSelection} selection The selection object. |
| 474 */ | 474 */ |
| 475 FileSelectionHandler.prototype.updateFileSelectionAsync = function(selection) { | 475 FileSelectionHandler.prototype.updateFileSelectionAsync = function(selection) { |
| 476 if (this.selection != selection) return; | 476 if (this.selection != selection) return; |
| 477 | 477 |
| 478 // Update the file tasks. | 478 // Update the file tasks. |
| 479 var onTasks = function() { |
| 480 if (this.selection != selection) return; |
| 481 selection.tasks.display(this.taskItems_); |
| 482 selection.tasks.updateMenuItem(); |
| 483 }.bind(this); |
| 484 |
| 479 if (this.fileManager_.dialogType == DialogType.FULL_PAGE && | 485 if (this.fileManager_.dialogType == DialogType.FULL_PAGE && |
| 480 selection.directoryCount == 0 && selection.fileCount > 0) { | 486 selection.directoryCount == 0 && selection.fileCount > 0) { |
| 481 selection.createTasks(function() { | 487 selection.createTasks(onTasks); |
| 482 if (this.selection != selection) | |
| 483 return; | |
| 484 selection.tasks.display(this.taskItems_); | |
| 485 selection.tasks.updateMenuItem(); | |
| 486 }.bind(this)); | |
| 487 } else { | 488 } else { |
| 488 this.taskItems_.hidden = true; | 489 this.taskItems_.hidden = true; |
| 489 } | 490 } |
| 490 | 491 |
| 491 // Update preview panels. | 492 // Update the UI. |
| 492 var wasVisible = this.isPreviewPanelVisibile_(); | 493 var wasVisible = this.isPreviewPanelVisibile_(); |
| 493 var thumbnailEntries; | 494 this.updatePreviewPanelVisibility_(); |
| 495 |
| 494 if (util.platform.newUI() && selection.totalCount == 0) { | 496 if (util.platform.newUI() && selection.totalCount == 0) { |
| 495 thumbnailEntries = [ | 497 var path = this.fileManager_.getCurrentDirectory(); |
| 496 this.fileManager_.getCurrentDirectoryEntry() | 498 // Hides the breadcrumbs list on the root path. |
| 497 ]; | 499 if (PathUtil.isRootPath(path)) |
| 498 } else { | 500 this.updatePreviewPanelBreadcrumbs_(null); |
| 499 thumbnailEntries = selection.entries; | 501 else |
| 500 if (selection.totalCount != 1) { | 502 this.updatePreviewPanelBreadcrumbs_(path); |
| 501 selection.computeBytes(function() { | 503 var entry = this.fileManager_.getCurrentDirectoryEntry(); |
| 502 if (this.selection != selection) | 504 this.showPreviewThumbnails_([entry]); |
| 503 return; | 505 this.updatePreviewPanelText_(); |
| 504 this.updatePreviewPanelText_(); | 506 return; |
| 505 }.bind(this)); | |
| 506 } | |
| 507 } | 507 } |
| 508 this.updatePreviewPanelVisibility_(); | |
| 509 this.updatePreviewPanelText_(); | |
| 510 this.showPreviewThumbnails_(thumbnailEntries); | |
| 511 | 508 |
| 512 // Update breadcrums. | 509 this.fileManager_.updateContextMenuActionItems(null, false); |
| 513 var updateTarget = null; | |
| 514 if (util.platform.newUI()) { | |
| 515 var path = this.fileManager_.getCurrentDirectory(); | |
| 516 if (selection.totalCount == 1) { | |
| 517 // Shows the breadcrumb list when a file is selected. | |
| 518 updateTarget = selection.entries[0].fullPath; | |
| 519 } else if (selection.totalCount == 0 && !PathUtil.isRootPath(path)) { | |
| 520 // Shows the breadcrumb list when no file is selected and the current | |
| 521 // directory is non-root path. | |
| 522 updateTarget = path; | |
| 523 } | |
| 524 } | |
| 525 this.updatePreviewPanelBreadcrumbs_(updateTarget); | |
| 526 | |
| 527 // Scroll to item | |
| 528 if (!wasVisible && this.selection.totalCount == 1) { | 510 if (!wasVisible && this.selection.totalCount == 1) { |
| 529 var list = this.fileManager_.getCurrentList(); | 511 var list = this.fileManager_.getCurrentList(); |
| 530 list.scrollIndexIntoView(list.selectionModel.selectedIndex); | 512 list.scrollIndexIntoView(list.selectionModel.selectedIndex); |
| 531 } | 513 } |
| 532 | 514 |
| 533 // Sync the commands availability. | 515 // Sync the commands availability. |
| 534 if (selection.totalCount != 0) { | 516 var commands = this.fileManager_.dialogDom_.querySelectorAll('command'); |
| 535 var commands = this.fileManager_.dialogDom_.querySelectorAll('command'); | 517 for (var i = 0; i < commands.length; i++) |
| 536 for (var i = 0; i < commands.length; i++) | 518 commands[i].canExecuteChange(); |
| 537 commands[i].canExecuteChange(); | 519 |
| 520 if (!util.platform.newUI()) { |
| 521 this.updateSearchBreadcrumbs_(); |
| 522 // Update the summary information. |
| 523 var onBytes = function() { |
| 524 if (this.selection != selection) return; |
| 525 this.updatePreviewPanelText_(); |
| 526 }.bind(this); |
| 527 selection.computeBytes(onBytes); |
| 528 this.updatePreviewPanelText_(); |
| 529 } else { |
| 530 if (selection.totalCount == 1) { |
| 531 // Shows the breadcrumb list. |
| 532 var firstEntry = selection.entries[0]; |
| 533 this.updatePreviewPanelBreadcrumbs_(firstEntry.fullPath); |
| 534 this.updatePreviewPanelText_(); |
| 535 } else { |
| 536 this.updatePreviewPanelBreadcrumbs_(null); |
| 537 |
| 538 // Update the summary information. |
| 539 var onBytes = function() { |
| 540 if (this.selection != selection) return; |
| 541 this.updatePreviewPanelText_(); |
| 542 }.bind(this); |
| 543 selection.computeBytes(onBytes); |
| 544 this.updatePreviewPanelText_(); |
| 545 } |
| 538 } | 546 } |
| 539 | 547 |
| 540 // Update context menu. | |
| 541 this.fileManager_.updateContextMenuActionItems(null, false); | |
| 542 | |
| 543 // Inform tests it's OK to click buttons now. | 548 // Inform tests it's OK to click buttons now. |
| 544 chrome.test.sendMessage('selection-change-complete'); | 549 chrome.test.sendMessage('selection-change-complete'); |
| 550 |
| 551 // Show thumbnails. |
| 552 this.showPreviewThumbnails_(selection.entries); |
| 545 }; | 553 }; |
| 546 | 554 |
| 547 /** | 555 /** |
| 548 * Renders preview thumbnails in preview panel. | 556 * Renders preview thumbnails in preview panel. |
| 549 * | 557 * |
| 550 * @param {Array.<FileEntry>} entries The entries of selected object. | 558 * @param {Array.<FileEntry>} entries The entries of selected object. |
| 551 * @private | 559 * @private |
| 552 */ | 560 */ |
| 553 FileSelectionHandler.prototype.showPreviewThumbnails_ = function(entries) { | 561 FileSelectionHandler.prototype.showPreviewThumbnails_ = function(entries) { |
| 554 var selection = this.selection; | 562 var selection = this.selection; |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 750 style.left = (boxWidth - imageWidth) / 2 + 'px'; | 758 style.left = (boxWidth - imageWidth) / 2 + 'px'; |
| 751 style.top = (boxHeight - imageHeight) / 2 + 'px'; | 759 style.top = (boxHeight - imageHeight) / 2 + 'px'; |
| 752 style.position = 'relative'; | 760 style.position = 'relative'; |
| 753 | 761 |
| 754 util.applyTransform(largeImage, transform); | 762 util.applyTransform(largeImage, transform); |
| 755 | 763 |
| 756 largeImageBox.appendChild(largeImage); | 764 largeImageBox.appendChild(largeImage); |
| 757 largeImageBox.style.zIndex = 1000; | 765 largeImageBox.style.zIndex = 1000; |
| 758 return true; | 766 return true; |
| 759 }; | 767 }; |
| OLD | NEW |