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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;Cut</span>", true, new CutCommand(app, this, selectedFiles));
213
	            contextMenu.addItem(cutItem);
214
	        }
215

  
216
			copyItem = new MenuItem("<span>" + AbstractImagePrototype.create(newImages.copy()).getHTML() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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() + "&nbsp;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