More fixes for context menus according to selected trees and folders
[pithos] / web_client / src / gr / grnet / pithos / web / client / foldertree / FolderTreeViewModel.java
index ea41fc3..a0a9de2 100644 (file)
@@ -89,11 +89,9 @@ public class FolderTreeViewModel implements TreeViewModel {
         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) {
             if (event.getType().equals(ContextMenuEvent.getType().getName())) {
                 FolderTreeViewModel.this.selectionModel.setSelected(folder, true);
-                if (!folder.isTrash()) {
-                    FolderContextMenu menu = new FolderContextMenu(app, FolderTreeView.images, folder);
-                    menu.setPopupPosition(event.getClientX(), event.getClientY());
-                    menu.show();
-                }
+                FolderContextMenu menu = new FolderContextMenu(app, FolderTreeView.images, app.getSelectedTree(), folder);
+                menu.setPopupPosition(event.getClientX(), event.getClientY());
+                menu.show();
             }
         }
     };
@@ -121,7 +119,7 @@ public class FolderTreeViewModel implements TreeViewModel {
                    dataProviderMap.put(f, new ListDataProvider<Folder>());
                }
                final ListDataProvider<Folder> dataProvider = dataProviderMap.get(f);
-               fetchFolder(f, dataProvider, false);
+               fetchFolder(f, dataProvider, false, null);
                return new DefaultNodeInfo<Folder>(dataProvider, folderCell, selectionModel, null);
     }
 
@@ -139,7 +137,7 @@ public class FolderTreeViewModel implements TreeViewModel {
             final Folder f = iter.next();
 
             String path = "/" + f.getContainer() + "?format=json&delimiter=/&prefix=" + f.getPrefix();
-            GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, app.getApiPath(), app.getUsername(), path, f) {
+            GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, app.getApiPath(), f.getOwner(), path, f) {
                 @Override
                 public void onSuccess(@SuppressWarnings("unused") Folder _result) {
                     fetchFolder(iter, callback);
@@ -177,23 +175,20 @@ public class FolderTreeViewModel implements TreeViewModel {
         return selectionModel.getSelectedObject();
     }
 
-    public void updateFolder(Folder folder, boolean showfiles) {
+    public void updateFolder(Folder folder, boolean showfiles, Command callback) {
         if (dataProviderMap.get(folder) == null) {
             dataProviderMap.put(folder, new ListDataProvider<Folder>());
         }
         final ListDataProvider<Folder> dataProvider = dataProviderMap.get(folder);
-        if (!folder.isTrash())
-            fetchFolder(folder, dataProvider, showfiles);
-        else
-            app.showFiles(folder);
+        fetchFolder(folder, dataProvider, showfiles, callback);
     }
 
-    public void fetchFolder(final Folder f, final ListDataProvider<Folder> dataProvider, final boolean showfiles) {
+    public void fetchFolder(final Folder f, final ListDataProvider<Folder> dataProvider, final boolean showfiles, final Command callback) {
         Scheduler.get().scheduleDeferred(new ScheduledCommand() {
             @Override
             public void execute() {
                 String path = "/" + f.getContainer() + "?format=json&delimiter=/&prefix=" + f.getPrefix();
-                GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, app.getApiPath(), app.getUsername(), path, f) {
+                GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, app.getApiPath(), f.getOwner(), path, f) {
                     @Override
                     public void onSuccess(final Folder _result) {
                         if (showfiles)
@@ -205,6 +200,8 @@ public class FolderTreeViewModel implements TreeViewModel {
                                 dataProvider.getList().clear();
                                 dataProvider.getList().addAll(_result.getSubfolders());
                                 app.getFolderTreeView().updateChildren(f);
+                                if (callback != null)
+                                       callback.execute();
                             }
                         });
                     }