Revision a2f617f8 src/gr/grnet/pithos/web/client/FileList.java

b/src/gr/grnet/pithos/web/client/FileList.java
60 60
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
61 61
import com.google.gwt.user.cellview.client.CellTable;
62 62
import com.google.gwt.user.cellview.client.Column;
63
import com.google.gwt.user.client.Command;
63 64
import com.google.gwt.user.client.DOM;
64 65
import com.google.gwt.user.client.Event;
65 66
import com.google.gwt.user.client.Window;
......
318 319
		vp.setCellWidth(celltable, "100%");
319 320
        vp.addHandler(new ContextMenuHandler() {
320 321
            @Override
321
            public void onContextMenu(ContextMenuEvent event) {
322
            	TreeView tree = app.getSelectedTree();
322
            public void onContextMenu(final ContextMenuEvent event) {
323
            	final TreeView tree = app.getSelectedTree();
323 324
            	if (tree != null && (tree.equals(app.getFolderTreeView()) || tree.equals(app.getOtherSharedTreeView()))) {
324
	                Folder selectedFolder = app.getSelection();
325
	                FileContextMenu contextMenu = new FileContextMenu(app, images, tree, selectedFolder, getSelectedFiles());
326
	                int x = event.getNativeEvent().getClientX();
327
	                int y = event.getNativeEvent().getClientY();
328
	                contextMenu.setPopupPosition(x, y);
329
	                contextMenu.show();
325
	                final int x = event.getNativeEvent().getClientX();
326
	                final int y = event.getNativeEvent().getClientY();
327
	                final Folder selectedFolder = app.getSelection();
328
	                app.scheduleFolderHeadCommand(selectedFolder, new Command() {
329
						
330
						@Override
331
						public void execute() {
332
							final List<File> selectedFiles = getSelectedFiles();
333
							Iterator<File> iter = selectedFiles.iterator();
334
							iterateFilesHeadCommand(iter, new Command() {
335
								
336
								@Override
337
								public void execute() {
338
					                FileContextMenu contextMenu = new FileContextMenu(app, images, tree, selectedFolder, selectedFiles);
339
					                contextMenu.setPopupPosition(x, y);
340
					                contextMenu.show();
341
								}
342
							});
343
						}
344
					});
330 345
            	}
331 346
            }
332 347
        }, ContextMenuEvent.getType());
......
589 604
		//celltable.redraw();
590 605
		celltable.redrawHeaders();		
591 606
	}
607
	
608
	void iterateFilesHeadCommand(final Iterator<File> iter, final Command callback) {
609
		if (iter.hasNext()) {
610
			File f = iter.next();
611
			app.scheduleFileHeadCommand(f, new Command() {
612
				
613
				@Override
614
				public void execute() {
615
					iterateFilesHeadCommand(iter, callback);
616
				}
617
			});
618
		}
619
		else if (callback != null)
620
			callback.execute();
621
	}
592 622
}

Also available in: Unified diff