Index: chrome/browser/resources/file_manager/js/file_manager_commands.js |
diff --git a/chrome/browser/resources/file_manager/js/file_manager_commands.js b/chrome/browser/resources/file_manager/js/file_manager_commands.js |
index e7fa055aa7fd79a6ae1fd30ca422de253c471092..75fd153c0a2933132903af8ea0524d3853f471c1 100644 |
--- a/chrome/browser/resources/file_manager/js/file_manager_commands.js |
+++ b/chrome/browser/resources/file_manager/js/file_manager_commands.js |
@@ -8,24 +8,25 @@ var CommandUtil = {}; |
* Extracts root on which command event was dispatched. |
* |
* @param {Event} event Command event for which to retrieve root to operate on. |
- * @param {cr.ui.List} rootsList Root list to extract root node. |
- * @return {DirectoryEntry} Found root. |
+ * @param {DirectoryTree} directoryTree Directory tree to extract root node. |
+ * @return {?DirectoryEntry} Found root. |
mtomasz
2013/03/14 02:52:05
AFAIK objects do not need ? in jsdoc.
yoshiki
2013/03/14 07:57:53
Oops, removed.
|
*/ |
-CommandUtil.getCommandRoot = function(event, rootsList) { |
- var result = rootsList.dataModel.item( |
- rootsList.getIndexOfListItem(event.target)) || |
- rootsList.selectedItem; |
+CommandUtil.getCommandRoot = function(event, directoryTree) { |
+ var entry = directoryTree.selectedItem; |
- return result; |
+ if (entry && PathUtil.isRootPath(entry.fullPath)) |
+ return entry; |
+ else |
+ return null; |
}; |
/** |
* @param {Event} event Command event for which to retrieve root type. |
- * @param {cr.ui.List} rootsList Root list to extract root node. |
- * @return {string} Found root. |
+ * @param {DirectoryTree} directoryTree Directory tree to extract root node. |
+ * @return {?string} Found root. |
*/ |
-CommandUtil.getCommandRootType = function(event, rootsList) { |
- var root = CommandUtil.getCommandRoot(event, rootsList); |
+CommandUtil.getCommandRootType = function(event, directoryTree) { |
+ var root = CommandUtil.getCommandRoot(event, directoryTree); |
return root && PathUtil.getRootType(root.fullPath); |
}; |
@@ -128,16 +129,24 @@ Commands.defaultCommand = { |
* Unmounts external drive. |
*/ |
Commands.unmountCommand = { |
- execute: function(event, rootsList, fileManager) { |
- var root = CommandUtil.getCommandRoot(event, rootsList); |
+ /** |
+ * @param {Event} event Command event. |
+ * @param {DirectoryTree} directoryTree Target directory tree. |
+ */ |
+ execute: function(event, directoryTree, fileManager) { |
+ var root = CommandUtil.getCommandRoot(event, directoryTree); |
if (root) |
fileManager.unmountVolume(PathUtil.getRootPath(root.fullPath)); |
}, |
- canExecute: function(event, rootsList) { |
- var rootType = CommandUtil.getCommandRootType(event, rootsList); |
- |
- event.canExecute = (rootType == RootType.ARCHIVE || |
- rootType == RootType.REMOVABLE); |
+ /** |
+ * @param {Event} event Command event. |
+ * @param {DirectoryTree} directoryTree Target directory tree. |
+ */ |
+ canExecute: function(event, directoryTree) { |
+ var rootType = CommandUtil.getCommandRootType(event, directoryTree); |
+ |
+ event.canExecute = (rootType === RootType.ARCHIVE || |
mtomasz
2013/03/14 02:52:05
Is this change necessary? RootType.* values are ne
yoshiki
2013/03/14 07:57:53
Done.
|
+ rootType === RootType.REMOVABLE); |
event.command.label = rootType == RootType.ARCHIVE ? |
str('CLOSE_ARCHIVE_BUTTON_LABEL') : |
str('UNMOUNT_DEVICE_BUTTON_LABEL'); |
@@ -148,8 +157,12 @@ Commands.unmountCommand = { |
* Formats external drive. |
*/ |
Commands.formatCommand = { |
- execute: function(event, rootsList, fileManager) { |
- var root = CommandUtil.getCommandRoot(event, rootsList); |
+ /** |
+ * @param {Event} event Command event. |
+ * @param {DirectoryTree} directoryTree Target directory tree. |
+ */ |
+ execute: function(event, directoryTree, fileManager) { |
+ var root = CommandUtil.getCommandRoot(event, directoryTree); |
if (root) { |
var url = util.makeFilesystemUrl(PathUtil.getRootPath(root.fullPath)); |
@@ -158,8 +171,12 @@ Commands.formatCommand = { |
chrome.fileBrowserPrivate.formatDevice.bind(null, url)); |
} |
}, |
- canExecute: function(event, rootsList, fileManager, directoryModel) { |
- var root = CommandUtil.getCommandRoot(event, rootsList); |
+ /** |
+ * @param {Event} event Command event. |
+ * @param {DirectoryTree} directoryTree Target directory tree. |
+ */ |
+ canExecute: function(event, directoryTree, fileManager, directoryModel) { |
+ var root = CommandUtil.getCommandRoot(event, directoryTree); |
var removable = root && |
PathUtil.getRootType(root.fullPath) == RootType.REMOVABLE; |
var isReadOnly = root && directoryModel.isPathReadOnly(root.fullPath); |
@@ -172,8 +189,12 @@ Commands.formatCommand = { |
* Imports photos from external drive |
*/ |
Commands.importCommand = { |
- execute: function(event, rootsList) { |
- var root = CommandUtil.getCommandRoot(event, rootsList); |
+ /** |
+ * @param {Event} event Command event. |
+ * @param {DirectoryTree} directoryTree Target directory tree. |
+ */ |
+ execute: function(event, directoryTree) { |
+ var root = CommandUtil.getCommandRoot(event, directoryTree); |
if (!root) |
return; |
@@ -184,9 +205,13 @@ Commands.importCommand = { |
type: 'popup' }); |
}.bind(this)); |
}, |
- canExecute: function(event, rootsList) { |
- event.canExecute = |
- (CommandUtil.getCommandRootType(event, rootsList) != RootType.DRIVE); |
+ /** |
+ * @param {Event} event Command event. |
+ * @param {DirectoryTree} directoryTree Target directory tree. |
+ */ |
+ canExecute: function(event, directoryTree) { |
+ var rootType = CommandUtil.getCommandRootType(event, directoryTree); |
+ event.canExecute = (rootType != RootType.DRIVE); |
} |
}; |