Revision 02d3a335
b/src/gr/grnet/pithos/web/client/FileContextMenu.java | ||
---|---|---|
179 | 179 |
* |
180 | 180 |
* @param newImages the image bundle passed on by the parent object |
181 | 181 |
*/ |
182 |
public FileContextMenu(final Pithos app, Images newImages, TreeView selectedTree, Folder selectedFolder, List<File> selectedFiles, boolean isTrash) {
|
|
182 |
public FileContextMenu(final Pithos app, Images newImages, TreeView selectedTree, Folder selectedFolder, List<File> selectedFiles) { |
|
183 | 183 |
// The popup's constructor's argument is a boolean specifying that it |
184 | 184 |
// auto-close itself when the user clicks outside of it. |
185 | 185 |
super(true); |
... | ... | |
198 | 198 |
canWrite &= (f.getOwner().equals(app.getUsername()) || (permissions!= null && permissions[1] != null && permissions[1])); |
199 | 199 |
} |
200 | 200 |
} |
201 |
|
|
202 |
if (selectedFolder != null && !selectedFolder.isInTrash()) { |
|
203 |
if (canWrite && app.getClipboard().hasFiles()) { |
|
204 |
pasteItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.paste()).getHTML() + " Paste</span>", true, new PasteCommand(app, this, selectedFolder)); |
|
205 |
contextMenu.addItem(pasteItem); |
|
206 |
} |
|
207 |
|
|
208 |
if (canWrite) { |
|
209 |
MenuItem upload = new MenuItem("<span>" + AbstractImagePrototype.create(images.fileUpdate()).getHTML() + " Upload</span>", true, new UploadFileCommand(app, this, selectedFolder)); |
|
210 |
contextMenu.addItem(upload); |
|
211 |
|
|
212 |
cutItem = new MenuItem("<span id='fileContextMenu.cut'>" + AbstractImagePrototype.create(newImages.cut()).getHTML() + " Cut</span>", true, new CutCommand(app, this, selectedFiles)); |
|
213 |
contextMenu.addItem(cutItem); |
|
214 |
} |
|
215 |
|
|
216 |
copyItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.copy()).getHTML() + " Copy</span>", true, new CopyCommand(app, this, selectedFiles)); |
|
217 |
contextMenu.addItem(copyItem); |
|
218 |
|
|
219 |
if (selectedTree.equals(app.getFolderTreeView())) { |
|
220 |
trashItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.emptyTrash()).getHTML() + " Move to Trash</span>", true, new ToTrashCommand(app, this, selectedFiles)); |
|
221 |
contextMenu.addItem(trashItem); |
|
222 |
} |
|
223 |
} |
|
224 |
else { |
|
225 |
MenuItem restore = new MenuItem("<span>" + AbstractImagePrototype.create(images.versions()).getHTML() + " Restore</span>", true, new RestoreTrashCommand(app, this, selectedFiles)); |
|
226 |
contextMenu.addItem(restore); |
|
201 |
boolean isFolderTreeSelected = selectedTree.equals(app.getFolderTreeView()); |
|
202 |
if (selectedFolder != null) { |
|
203 |
if (!selectedFolder.isInTrash()) { |
|
204 |
if (canWrite && app.getClipboard().hasFiles()) { |
|
205 |
pasteItem = new MenuItem("<span>" + AbstractImagePrototype.create(images.paste()).getHTML() + " Paste</span>", true, new PasteCommand(app, this, selectedFolder)); |
|
206 |
contextMenu.addItem(pasteItem); |
|
207 |
} |
|
208 |
|
|
209 |
if (canWrite) { |
|
210 |
MenuItem upload = new MenuItem("<span>" + AbstractImagePrototype.create(images.fileUpdate()).getHTML() + " Upload</span>", true, new UploadFileCommand(app, this, selectedFolder)); |
|
211 |
contextMenu.addItem(upload); |
|
212 |
} |
|
213 |
if (isFolderTreeSelected) { |
|
214 |
cutItem = new MenuItem("<span id='fileContextMenu.cut'>" + AbstractImagePrototype.create(newImages.cut()).getHTML() + " Cut</span>", true, new CutCommand(app, this, selectedFiles)); |
|
215 |
contextMenu.addItem(cutItem); |
|
216 |
} |
|
217 |
|
|
218 |
|
|
219 |
if (isFolderTreeSelected) { |
|
220 |
trashItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.emptyTrash()).getHTML() + " Move to Trash</span>", true, new ToTrashCommand(app, this, selectedFiles)); |
|
221 |
contextMenu.addItem(trashItem); |
|
222 |
} |
|
223 |
} |
|
224 |
else { |
|
225 |
MenuItem restore = new MenuItem("<span>" + AbstractImagePrototype.create(images.versions()).getHTML() + " Restore</span>", true, new RestoreTrashCommand(app, this, selectedFiles)); |
|
226 |
contextMenu.addItem(restore); |
|
227 |
} |
|
227 | 228 |
} |
229 |
copyItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.copy()).getHTML() + " Copy</span>", true, new CopyCommand(app, this, selectedFiles)); |
|
230 |
contextMenu.addItem(copyItem); |
|
228 | 231 |
|
229 |
if (canWrite) {
|
|
232 |
if (isFolderTreeSelected) {
|
|
230 | 233 |
deleteItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.delete()).getHTML() + " Delete</span>", true, new DeleteCommand(app, this, selectedFiles, MessagePanel.images)); |
231 | 234 |
contextMenu.addItem(deleteItem); |
232 | 235 |
} |
... | ... | |
235 | 238 |
// contextMenu.addItem(refresh); |
236 | 239 |
// sharingItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.sharing()).getHTML() + " Sharing</span>", true, new PropertiesCommand(this, images, 1)); |
237 | 240 |
// contextMenu.addItem(sharingItem); |
238 |
if (!selectedFolder.isInTrash()) { |
|
239 |
if (canWrite && selectedFiles.size() == 1)
|
|
241 |
if (selectedFolder != null && !selectedFolder.isInTrash()) {
|
|
242 |
if (isFolderTreeSelected && selectedFiles.size() == 1)
|
|
240 | 243 |
contextMenu.addItem(new MenuItem("<span>" + AbstractImagePrototype.create(newImages.viewText()).getHTML() + " Properties</span>", true, new PropertiesCommand(app, this, selectedFiles, images, 0))); |
241 | 244 |
|
242 |
if (!selectedFiles.isEmpty())
|
|
245 |
if (selectedFiles.size() == 1)
|
|
243 | 246 |
contextMenu.addItem(new MenuItem("<span><a class='hidden-link' href='" + app.getApiPath() + app.getUsername() + selectedFiles.get(0).getUri() + "?X-Auth-Token=" + app.getToken() + "' target='_blank'>" + AbstractImagePrototype.create(newImages.download()).getHTML() + " Download</a></span>", true, (Command) null)); |
244 | 247 |
} |
245 | 248 |
MenuItem unSelect = new MenuItem("<span>" + AbstractImagePrototype.create(images.unselectAll()).getHTML() + " Unselect</span>", true, new Command() { |
... | ... | |
251 | 254 |
}); |
252 | 255 |
contextMenu.addItem(unSelect); |
253 | 256 |
|
254 |
// } |
|
255 | 257 |
add(contextMenu); |
256 | 258 |
} |
257 | 259 |
} |
b/src/gr/grnet/pithos/web/client/FileList.java | ||
---|---|---|
317 | 317 |
TreeView tree = app.getSelectedTree(); |
318 | 318 |
if (tree != null && (tree.equals(app.getFolderTreeView()) || tree.equals(app.getOtherSharedTreeView()))) { |
319 | 319 |
Folder selectedFolder = app.getSelection(); |
320 |
FileContextMenu contextMenu = new FileContextMenu(app, images, tree, selectedFolder, getSelectedFiles(), false);
|
|
320 |
FileContextMenu contextMenu = new FileContextMenu(app, images, tree, selectedFolder, getSelectedFiles()); |
|
321 | 321 |
int x = event.getNativeEvent().getClientX(); |
322 | 322 |
int y = event.getNativeEvent().getClientY(); |
323 | 323 |
contextMenu.setPopupPosition(x, y); |
b/src/gr/grnet/pithos/web/client/FolderContextMenu.java | ||
---|---|---|
74 | 74 |
* |
75 | 75 |
* @param newImages the image bundle passed on by the parent object |
76 | 76 |
*/ |
77 |
public FolderContextMenu(Pithos app, final Images newImages, Folder folder) { |
|
77 |
public FolderContextMenu(Pithos app, final Images newImages, TreeView selectedTree, Folder folder) {
|
|
78 | 78 |
// The popup's constructor's argument is a boolean specifying that it |
79 | 79 |
// auto-close itself when the user clicks outside of it. |
80 | 80 |
super(true); |
... | ... | |
84 | 84 |
|
85 | 85 |
Boolean[] permissions = folder.getPermissions().get(app.getUsername()); |
86 | 86 |
boolean canWrite = folder.getOwner().equals(app.getUsername()) || (permissions!= null && permissions[1] != null && permissions[1]); |
87 |
|
|
87 |
boolean isFolderTreeSelected = selectedTree.equals(app.getFolderTreeView()); |
|
88 |
|
|
88 | 89 |
if (!folder.isInTrash()) { |
89 | 90 |
if (canWrite) { |
90 | 91 |
MenuItem newFolder = new MenuItem("<span id = 'folderContextMenu.newFolder'>" + AbstractImagePrototype.create(newImages.folderNew()).getHTML() + " New Folder</span>", true, new NewFolderCommand(app, this, folder, images)); |
91 | 92 |
contextMenu.addItem(newFolder); |
92 | 93 |
|
93 |
if (!folder.isContainer()) { |
|
94 |
if (isFolderTreeSelected && !folder.isContainer()) {
|
|
94 | 95 |
MenuItem cut = new MenuItem("<span id = 'folderContextMenu.cut'>" + AbstractImagePrototype.create(newImages.cut()).getHTML() + " Cut</span>", true, new CutCommand(app, this, folder)); |
95 | 96 |
contextMenu.addItem(cut); |
96 | 97 |
} |
... | ... | |
105 | 106 |
contextMenu.addItem(pasteItem); |
106 | 107 |
} |
107 | 108 |
|
108 |
if (!folder.isContainer()) { |
|
109 |
if (isFolderTreeSelected && !folder.isContainer()) {
|
|
109 | 110 |
MenuItem moveToTrash = new MenuItem("<span id = 'folderContextMenu.moveToTrash'>" + AbstractImagePrototype.create(newImages.emptyTrash()).getHTML() + " Move to Trash</span>", true, new ToTrashCommand(app, this, folder)); |
110 | 111 |
contextMenu.addItem(moveToTrash); |
111 | 112 |
|
b/src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java | ||
---|---|---|
89 | 89 |
public void onBrowserEvent(@SuppressWarnings("unused") Cell.Context context, @SuppressWarnings("unused") com.google.gwt.dom.client.Element parent, Folder folder, com.google.gwt.dom.client.NativeEvent event, @SuppressWarnings("unused") com.google.gwt.cell.client.ValueUpdater<Folder> valueUpdater) { |
90 | 90 |
if (event.getType().equals(ContextMenuEvent.getType().getName())) { |
91 | 91 |
FolderTreeViewModel.this.selectionModel.setSelected(folder, true); |
92 |
FolderContextMenu menu = new FolderContextMenu(app, FolderTreeView.images, folder); |
|
92 |
FolderContextMenu menu = new FolderContextMenu(app, FolderTreeView.images, app.getSelectedTree(), folder);
|
|
93 | 93 |
menu.setPopupPosition(event.getClientX(), event.getClientY()); |
94 | 94 |
menu.show(); |
95 | 95 |
} |
b/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeViewModel.java | ||
---|---|---|
85 | 85 |
public void onBrowserEvent(@SuppressWarnings("unused") Context context, @SuppressWarnings("unused") com.google.gwt.dom.client.Element parent, Folder folder, com.google.gwt.dom.client.NativeEvent event, @SuppressWarnings("unused") ValueUpdater<Folder> valueUpdater) { |
86 | 86 |
if (event.getType().equals(ContextMenuEvent.getType().getName())) { |
87 | 87 |
MysharedTreeViewModel.this.selectionModel.setSelected(folder, true); |
88 |
FolderContextMenu menu = new FolderContextMenu(app, MysharedTreeView.images, folder); |
|
88 |
FolderContextMenu menu = new FolderContextMenu(app, MysharedTreeView.images, app.getSelectedTree(), folder);
|
|
89 | 89 |
menu.setPopupPosition(event.getClientX(), event.getClientY()); |
90 | 90 |
menu.show(); |
91 | 91 |
} |
b/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeViewModel.java | ||
---|---|---|
86 | 86 |
public void onBrowserEvent(@SuppressWarnings("unused") Context context, @SuppressWarnings("unused") com.google.gwt.dom.client.Element parent, Folder folder, com.google.gwt.dom.client.NativeEvent event, @SuppressWarnings("unused") ValueUpdater<Folder> valueUpdater) { |
87 | 87 |
if (event.getType().equals(ContextMenuEvent.getType().getName())) { |
88 | 88 |
OtherSharedTreeViewModel.this.selectionModel.setSelected(folder, true); |
89 |
FolderContextMenu menu = new FolderContextMenu(app, OtherSharedTreeView.images, folder); |
|
89 |
FolderContextMenu menu = new FolderContextMenu(app, OtherSharedTreeView.images, app.getSelectedTree(), folder);
|
|
90 | 90 |
menu.setPopupPosition(event.getClientX(), event.getClientY()); |
91 | 91 |
menu.show(); |
92 | 92 |
} |
Also available in: Unified diff