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 var CommandUtil = {}; | 5 var CommandUtil = {}; |
6 | 6 |
7 /** | 7 /** |
8 * Extracts root on which command event was dispatched. | 8 * Extracts root on which command event was dispatched. |
9 * | 9 * |
10 * @param {Event} event Command event for which to retrieve root to operate on. | 10 * @param {Event} event Command event for which to retrieve root to operate on. |
11 * @param {cr.ui.List} rootsList Root list to extract root node. | 11 * @param {DirectoryTree} directoryTree Directory tree to extract root node. |
12 * @return {DirectoryEntry} Found root. | 12 * @return {DirectoryEntry} Found root. |
13 */ | 13 */ |
14 CommandUtil.getCommandRoot = function(event, rootsList) { | 14 CommandUtil.getCommandRoot = function(event, directoryTree) { |
15 var result = rootsList.dataModel.item( | 15 var entry = directoryTree.selectedItem; |
16 rootsList.getIndexOfListItem(event.target)) || | |
17 rootsList.selectedItem; | |
18 | 16 |
19 return result; | 17 if (entry && PathUtil.isRootPath(entry.fullPath)) |
| 18 return entry; |
| 19 else |
| 20 return null; |
20 }; | 21 }; |
21 | 22 |
22 /** | 23 /** |
23 * @param {Event} event Command event for which to retrieve root type. | 24 * @param {Event} event Command event for which to retrieve root type. |
24 * @param {cr.ui.List} rootsList Root list to extract root node. | 25 * @param {DirectoryTree} directoryTree Directory tree to extract root node. |
25 * @return {string} Found root. | 26 * @return {?string} Found root. |
26 */ | 27 */ |
27 CommandUtil.getCommandRootType = function(event, rootsList) { | 28 CommandUtil.getCommandRootType = function(event, directoryTree) { |
28 var root = CommandUtil.getCommandRoot(event, rootsList); | 29 var root = CommandUtil.getCommandRoot(event, directoryTree); |
29 | 30 |
30 return root && PathUtil.getRootType(root.fullPath); | 31 return root && PathUtil.getRootType(root.fullPath); |
31 }; | 32 }; |
32 | 33 |
33 /** | 34 /** |
34 * Checks if command can be executed on drive. | 35 * Checks if command can be executed on drive. |
35 * @param {Event} event Command event to mark. | 36 * @param {Event} event Command event to mark. |
36 * @param {FileManager} fileManager FileManager to use. | 37 * @param {FileManager} fileManager FileManager to use. |
37 */ | 38 */ |
38 CommandUtil.canExecuteEnabledOnDriveOnly = function(event, fileManager) { | 39 CommandUtil.canExecuteEnabledOnDriveOnly = function(event, fileManager) { |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 }, | 122 }, |
122 canExecute: function(event, document) { | 123 canExecute: function(event, document) { |
123 event.canExecute = document.queryCommandEnabled(event.command.id); | 124 event.canExecute = document.queryCommandEnabled(event.command.id); |
124 } | 125 } |
125 }; | 126 }; |
126 | 127 |
127 /** | 128 /** |
128 * Unmounts external drive. | 129 * Unmounts external drive. |
129 */ | 130 */ |
130 Commands.unmountCommand = { | 131 Commands.unmountCommand = { |
131 execute: function(event, rootsList, fileManager) { | 132 /** |
132 var root = CommandUtil.getCommandRoot(event, rootsList); | 133 * @param {Event} event Command event. |
| 134 * @param {DirectoryTree} directoryTree Target directory tree. |
| 135 */ |
| 136 execute: function(event, directoryTree, fileManager) { |
| 137 var root = CommandUtil.getCommandRoot(event, directoryTree); |
133 if (root) | 138 if (root) |
134 fileManager.unmountVolume(PathUtil.getRootPath(root.fullPath)); | 139 fileManager.unmountVolume(PathUtil.getRootPath(root.fullPath)); |
135 }, | 140 }, |
136 canExecute: function(event, rootsList) { | 141 /** |
137 var rootType = CommandUtil.getCommandRootType(event, rootsList); | 142 * @param {Event} event Command event. |
| 143 * @param {DirectoryTree} directoryTree Target directory tree. |
| 144 */ |
| 145 canExecute: function(event, directoryTree) { |
| 146 var rootType = CommandUtil.getCommandRootType(event, directoryTree); |
138 | 147 |
139 event.canExecute = (rootType == RootType.ARCHIVE || | 148 event.canExecute = (rootType == RootType.ARCHIVE || |
140 rootType == RootType.REMOVABLE); | 149 rootType == RootType.REMOVABLE); |
141 event.command.label = rootType == RootType.ARCHIVE ? | 150 event.command.label = rootType == RootType.ARCHIVE ? |
142 str('CLOSE_ARCHIVE_BUTTON_LABEL') : | 151 str('CLOSE_ARCHIVE_BUTTON_LABEL') : |
143 str('UNMOUNT_DEVICE_BUTTON_LABEL'); | 152 str('UNMOUNT_DEVICE_BUTTON_LABEL'); |
144 } | 153 } |
145 }; | 154 }; |
146 | 155 |
147 /** | 156 /** |
148 * Formats external drive. | 157 * Formats external drive. |
149 */ | 158 */ |
150 Commands.formatCommand = { | 159 Commands.formatCommand = { |
151 execute: function(event, rootsList, fileManager) { | 160 /** |
152 var root = CommandUtil.getCommandRoot(event, rootsList); | 161 * @param {Event} event Command event. |
| 162 * @param {DirectoryTree} directoryTree Target directory tree. |
| 163 */ |
| 164 execute: function(event, directoryTree, fileManager) { |
| 165 var root = CommandUtil.getCommandRoot(event, directoryTree); |
153 | 166 |
154 if (root) { | 167 if (root) { |
155 var url = util.makeFilesystemUrl(PathUtil.getRootPath(root.fullPath)); | 168 var url = util.makeFilesystemUrl(PathUtil.getRootPath(root.fullPath)); |
156 fileManager.confirm.show( | 169 fileManager.confirm.show( |
157 loadTimeData.getString('FORMATTING_WARNING'), | 170 loadTimeData.getString('FORMATTING_WARNING'), |
158 chrome.fileBrowserPrivate.formatDevice.bind(null, url)); | 171 chrome.fileBrowserPrivate.formatDevice.bind(null, url)); |
159 } | 172 } |
160 }, | 173 }, |
161 canExecute: function(event, rootsList, fileManager, directoryModel) { | 174 /** |
162 var root = CommandUtil.getCommandRoot(event, rootsList); | 175 * @param {Event} event Command event. |
| 176 * @param {DirectoryTree} directoryTree Target directory tree. |
| 177 */ |
| 178 canExecute: function(event, directoryTree, fileManager, directoryModel) { |
| 179 var root = CommandUtil.getCommandRoot(event, directoryTree); |
163 var removable = root && | 180 var removable = root && |
164 PathUtil.getRootType(root.fullPath) == RootType.REMOVABLE; | 181 PathUtil.getRootType(root.fullPath) == RootType.REMOVABLE; |
165 var isReadOnly = root && directoryModel.isPathReadOnly(root.fullPath); | 182 var isReadOnly = root && directoryModel.isPathReadOnly(root.fullPath); |
166 event.canExecute = removable && !isReadOnly; | 183 event.canExecute = removable && !isReadOnly; |
167 event.command.setHidden(!removable); | 184 event.command.setHidden(!removable); |
168 } | 185 } |
169 }; | 186 }; |
170 | 187 |
171 /** | 188 /** |
172 * Imports photos from external drive | 189 * Imports photos from external drive |
173 */ | 190 */ |
174 Commands.importCommand = { | 191 Commands.importCommand = { |
175 execute: function(event, rootsList) { | 192 /** |
176 var root = CommandUtil.getCommandRoot(event, rootsList); | 193 * @param {Event} event Command event. |
| 194 * @param {DirectoryTree} directoryTree Target directory tree. |
| 195 */ |
| 196 execute: function(event, directoryTree) { |
| 197 var root = CommandUtil.getCommandRoot(event, directoryTree); |
177 if (!root) | 198 if (!root) |
178 return; | 199 return; |
179 | 200 |
180 chrome.windows.getCurrent(undefined, function(window) { | 201 chrome.windows.getCurrent(undefined, function(window) { |
181 chrome.windows.create( | 202 chrome.windows.create( |
182 { url: chrome.extension.getURL('photo_import.html') + | 203 { url: chrome.extension.getURL('photo_import.html') + |
183 '?' + window.id + '#' + PathUtil.getRootPath(root.fullPath), | 204 '?' + window.id + '#' + PathUtil.getRootPath(root.fullPath), |
184 type: 'popup' }); | 205 type: 'popup' }); |
185 }.bind(this)); | 206 }.bind(this)); |
186 }, | 207 }, |
187 canExecute: function(event, rootsList) { | 208 /** |
188 event.canExecute = | 209 * @param {Event} event Command event. |
189 (CommandUtil.getCommandRootType(event, rootsList) != RootType.DRIVE); | 210 * @param {DirectoryTree} directoryTree Target directory tree. |
| 211 */ |
| 212 canExecute: function(event, directoryTree) { |
| 213 var rootType = CommandUtil.getCommandRootType(event, directoryTree); |
| 214 event.canExecute = (rootType != RootType.DRIVE); |
190 } | 215 } |
191 }; | 216 }; |
192 | 217 |
193 /** | 218 /** |
194 * Initiates new folder creation. | 219 * Initiates new folder creation. |
195 */ | 220 */ |
196 Commands.newFolderCommand = { | 221 Commands.newFolderCommand = { |
197 execute: function(event, fileManager) { | 222 execute: function(event, fileManager) { |
198 fileManager.createNewFolder(); | 223 fileManager.createNewFolder(); |
199 }, | 224 }, |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 fileManager.copyManager_.zipSelection(dirEntry, fileManager.isOnDrive(), | 428 fileManager.copyManager_.zipSelection(dirEntry, fileManager.isOnDrive(), |
404 selectionEntries); | 429 selectionEntries); |
405 }, | 430 }, |
406 canExecute: function(event, fileManager) { | 431 canExecute: function(event, fileManager) { |
407 var selection = fileManager.getSelection(); | 432 var selection = fileManager.getSelection(); |
408 event.canExecute = !fileManager.isOnReadonlyDirectory() && | 433 event.canExecute = !fileManager.isOnReadonlyDirectory() && |
409 !fileManager.isOnDrive() && | 434 !fileManager.isOnDrive() && |
410 selection && selection.totalCount > 0; | 435 selection && selection.totalCount > 0; |
411 } | 436 } |
412 }; | 437 }; |
OLD | NEW |