Merge with 2ad3c504ee5d73982c0ef23336276dc1fc9e165f
[pithos] / src / gr / ebs / gss / client / tree / OthersSharesSubtree.java
index 0d23a6b..81b908a 100644 (file)
@@ -36,6 +36,7 @@ import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.DeferredCommand;
 import com.google.gwt.user.client.IncrementalCommand;
 import com.google.gwt.user.client.ui.TreeItem;
+import com.google.gwt.user.client.ui.Widget;
 
 /**
  * @author kman
@@ -53,6 +54,7 @@ public class OthersSharesSubtree extends Subtree {
                super(aTree, _images);
                DeferredCommand.addCommand(new IncrementalCommand() {
 
+                       @Override
                        public boolean execute() {
                                return updateInit();
                        }
@@ -68,15 +70,17 @@ public class OthersSharesSubtree extends Subtree {
                        return !DONE;
 
                GetCommand<OthersResource> go = new GetCommand<OthersResource>(OthersResource.class,
-                                       userResource.getOthersPath()) {
+                                       userResource.getOthersPath(), null) {
 
                        @Override
                        public void onComplete() {
-                               rootItem = new DnDTreeItem(imageItemHTML(images.othersShared(), "Other's Shared"), "Other's Shared", false);
+                               Widget rootItemWidget = imageItemHTML(images.othersShared(), "Other's Shared");
+                               rootItemWidget.getElement().setId("tree.othersShared");
+                               rootItem = new DnDTreeItem(rootItemWidget, false,tree,true);
                                rootItem.setUserObject(getResult());
                                tree.addItem(rootItem);
-                               rootItem.removeItems();
-                               update(rootItem);
+                               //rootItem.removeItems();
+                               //update(rootItem);
                                GSS.get().removeGlassPanel();
                        }
 
@@ -85,7 +89,7 @@ public class OthersSharesSubtree extends Subtree {
                                GWT.log("Error fetching Others Root folder", t);
                                GSS.get().displayError("Unable to fetch Others Root folder");
                                if(rootItem != null){
-                                       rootItem = new DnDTreeItem(imageItemHTML(images.othersShared(), "ERROR"), "ERROR", false);
+                                       rootItem = new DnDTreeItem(imageItemHTML(images.othersShared(), "ERROR"), false,tree);
                                        tree.addItem(rootItem);
                                }
                        }
@@ -96,22 +100,43 @@ public class OthersSharesSubtree extends Subtree {
 
        public void update(final DnDTreeItem folderItem) {
                if (folderItem.getOthersResource() != null) {
-
-                       MultipleGetCommand<OtherUserResource> go = new MultipleGetCommand<OtherUserResource>(OtherUserResource.class,
-                                               folderItem.getOthersResource().getOthers().toArray(new String[] {})) {
+                       UserResource userResource = GSS.get().getCurrentUserResource();
+                       GetCommand<OthersResource> go = new GetCommand<OthersResource>(OthersResource.class,
+                                               userResource.getOthersPath(), null) {
 
                                @Override
                                public void onComplete() {
-                                       List<OtherUserResource> res = getResult();
-                                       folderItem.removeItems();
-                                       for (OtherUserResource r : res) {
-                                               DnDTreeItem child = (DnDTreeItem) addImageItem(folderItem,
-                                                                       r.getName(), images.folderYellow(), true);
-                                               child.setUserObject(r);
-                                               child.setState(false);
-                                               if(folderItem.getState())
-                                                       update(child);
-                                       }
+                                       final OthersResource others = getResult();
+                                       rootItem.setUserObject(others);
+                                       MultipleGetCommand<OtherUserResource> gogo = new MultipleGetCommand<OtherUserResource>(OtherUserResource.class,
+                                                               folderItem.getOthersResource().getOthers().toArray(new String[] {}), null) {
+
+                                               @Override
+                                               public void onComplete() {
+                                                       List<OtherUserResource> res = getResult();
+                                                       folderItem.removeItems();
+                                                       for (OtherUserResource r : res) {
+                                                               DnDTreeItem child = (DnDTreeItem) addImageItem(folderItem,
+                                                                                       r.getName(), images.folderYellow(), true);
+                                                               r.setUsername(others.getUsernameOfUri(r.getUri()));
+                                                               GWT.log("Setting username:"+r.getUsername(), null );
+                                                               child.setUserObject(r);
+                                                               child.setState(false);
+                                                       }
+                                               }
+
+                                               @Override
+                                               public void onError(Throwable t) {
+                                                       GWT.log("Error fetching Others Root folder", t);
+                                                       GSS.get().displayError("Unable to fetch Others Root folder");
+                                               }
+
+                                               @Override
+                                               public void onError(String p, Throwable throwable) {
+                                                       GWT.log("Path:"+p, throwable);
+                                               }
+                                       };
+                                       DeferredCommand.addCommand(gogo);
                                }
 
                                @Override
@@ -120,16 +145,13 @@ public class OthersSharesSubtree extends Subtree {
                                        GSS.get().displayError("Unable to fetch Others Root folder");
                                }
 
-                               @Override
-                               public void onError(String p, Throwable throwable) {
-                                       GWT.log("Path:"+p, throwable);
-                               }
                        };
+
                        DeferredCommand.addCommand(go);
                } else if (folderItem.getOtherUserResource() != null) {
 
                        GetCommand<OtherUserResource> go = new GetCommand<OtherUserResource>(OtherUserResource.class,
-                                               folderItem.getOtherUserResource().getUri()) {
+                                               folderItem.getOtherUserResource().getUri(), null) {
 
                                @Override
                                public void onComplete() {
@@ -139,9 +161,7 @@ public class OthersSharesSubtree extends Subtree {
                                                DnDTreeItem child = (DnDTreeItem) addImageItem(folderItem,
                                                                        r.getName(), images.folderYellow(), true);
                                                child.setUserObject(r);
-                                               child.setState(false);
                                                child.doDraggable();
-                                               update(child);
                                                updateFolderAndSubfolders(child);
                                        }
                                }
@@ -155,21 +175,20 @@ public class OthersSharesSubtree extends Subtree {
                        };
                        DeferredCommand.addCommand(go);
                } else if (folderItem.getFolderResource() != null) {
-
+                       GWT.log("UPDATING :"+folderItem.getFolderResource().getName(), null);
                        MultipleGetCommand<FolderResource> go = new MultipleGetCommand<FolderResource>(FolderResource.class,
-                                               folderItem.getFolderResource().getSubfolderPaths().toArray(new String[] {})) {
+                                               folderItem.getFolderResource().getSubfolderPaths().toArray(new String[] {}), folderItem.getFolderResource().getCache()) {
 
                                @Override
                                public void onComplete() {
                                        List<FolderResource> res = getResult();
                                        folderItem.removeItems();
+                                       GWT.log("UPDATING :"+folderItem.getFolderResource().getName()+" :"+res.size(), null);
                                        for (FolderResource r : res) {
                                                DnDTreeItem child = (DnDTreeItem) addImageItem(folderItem,
                                                                        r.getName(), images.folderYellow(), true);
                                                child.setUserObject(r);
-                                               child.setState(false);
                                                child.doDraggable();
-                                               update(child);
                                        }
                                }
 
@@ -192,7 +211,7 @@ public class OthersSharesSubtree extends Subtree {
        public void updateFolderAndSubfolders(final DnDTreeItem folderItem) {
                if (folderItem.getFolderResource() != null) {
                        final String path = folderItem.getFolderResource().getUri();
-                       GetCommand<FolderResource> gf = new GetCommand<FolderResource>(FolderResource.class, path) {
+                       GetCommand<FolderResource> gf = new GetCommand<FolderResource>(FolderResource.class, path, folderItem.getFolderResource()) {
 
                                @Override
                                public void onComplete() {
@@ -201,7 +220,6 @@ public class OthersSharesSubtree extends Subtree {
                                        folderItem.updateWidget(imageItemHTML(images.folderYellow(), rootResource.getName()));
                                        folderItem.setUserObject(rootResource);
                                        folderItem.doDraggable();
-                                       update(folderItem);
                                }
 
                                @Override