updateHistory removed from RestResource and other resources and implemented only...
[pithos] / src / gr / ebs / gss / client / PopupTree.java
index df15661..308f463 100644 (file)
@@ -22,7 +22,10 @@ import gr.ebs.gss.client.Folders.Images;
 import gr.ebs.gss.client.dnd.DnDTreeItem;
 import gr.ebs.gss.client.rest.resource.FolderResource;
 import gr.ebs.gss.client.rest.resource.OtherUserResource;
+import gr.ebs.gss.client.rest.resource.OthersResource;
 import gr.ebs.gss.client.rest.resource.RestResource;
+import gr.ebs.gss.client.rest.resource.SharedResource;
+import gr.ebs.gss.client.rest.resource.TrashResource;
 
 import java.util.Iterator;
 
@@ -67,10 +70,12 @@ public class PopupTree extends Tree {
 
                        @Override
                        public void onSelection(SelectionEvent<TreeItem> event) {
-                               TreeItem item = event.getSelectedItem();
-                               processItemSelected(item);
+                               TreeItem treeItem = event.getSelectedItem();
+                               processItemSelected(treeItem);
                                String path = GSS.get().getApiPath() + GSS.get().getCurrentUserResource().getUsername()+ "/";
-                               ((RestResource) GSS.get().getFolders().getCurrent().getUserObject()).updateHistory(item,path);
+                               String constructedUri = ((RestResource) GSS.get().getFolders().getCurrent().getUserObject()).constructUri(treeItem, path);
+                               GSS.get().updateHistory(constructedUri);
+//                             ((RestResource) GSS.get().getFolders().getCurrent().getUserObject()).updateHistory(treeItem,path);
                                }
                });
 
@@ -228,44 +233,47 @@ public class PopupTree extends Tree {
                treeSelectedItem = newSelectedItem;
        }
        /**
-        * Method that takes the current string uri, finds the corresponding treeItem object
-        * using the getTreeItem method and fires this treeItem object
-        * @param uri
-        * @return treeItem
-        */
-//     #Files/files/home
-       public TreeItem getTreeItemFromUri (String uri){
-               String newUri = uri.substring(uri.indexOf("/")+1);
-//             newUri = files/home
-               String uri2 = newUri.substring(0,newUri.indexOf("/"));
-               if(uri2.equalsIgnoreCase("files")){
-//                     folderResource
-                       String[] tokens = uri2.split("/");
-                       for (String t : tokens){
-                               TreeItem parentItem = getTreeItem(t);
-                               getTreeItemFromUri(parentItem.getText());
-                       }
-               }else if(uri2.equalsIgnoreCase("trash") || uri2.equalsIgnoreCase("shared") || uri2.equalsIgnoreCase("others"))
-                       //                      trashResource, sharedResource, othersResource
-                       return getTreeItem(uri2);
-               return getTreeItem(newUri);
-       }
-
-       /**
         * Method that takes a folderName and finds the corresponding treeItem object and returns it
-        * @param folderName
+        * @param historyToken
         * @return treeItem
         */
 
-       public TreeItem getTreeItem (String folderName){
+       public TreeItem getTreeItem (String historyToken){
+               String historyTokenOriginal = historyToken.replace("+", " ");
+               String path = GSS.get().getApiPath() + GSS.get().getCurrentUserResource().getUsername()+ "/";
                Iterator<TreeItem> it = GSS.get().getFolders().getPopupTree().treeItemIterator() ;
                while(it.hasNext()){
-                       TreeItem treeitem = it.next();
-                       if(treeitem.getText().equals(folderName))
-                               return treeitem;
+                       String constructedUri = "";
+                       TreeItem treeItem = it.next();
+                       if(treeItem.getUserObject() instanceof TrashResource){
+                               TrashResource currentObject = (TrashResource) treeItem.getUserObject();
+                               constructedUri = constructedUri +currentObject.constructUri(treeItem,path);
+                       }
+                       if(treeItem.getUserObject() instanceof SharedResource){
+                               SharedResource currentObject = (SharedResource) treeItem.getUserObject();
+                               constructedUri = constructedUri +currentObject.constructUri(treeItem, path);
+                       }
+                       if(treeItem.getUserObject() instanceof OthersResource){
+                               OthersResource currentObject = (OthersResource) treeItem.getUserObject();
+                               constructedUri = constructedUri +currentObject.constructUri(treeItem, path);
+                       }
+                       if(treeItem.getUserObject() instanceof OtherUserResource){
+                               OtherUserResource currentObject = (OtherUserResource) treeItem.getUserObject();
+                               constructedUri = constructedUri +currentObject.constructUri(treeItem, path);
+                       }
+                       if(treeItem.getUserObject() instanceof FolderResource){
+                               FolderResource currentObject = (FolderResource) treeItem.getUserObject();
+                               constructedUri = constructedUri + currentObject.constructUri(treeItem, path);
+                       }
+                       if(constructedUri.equals(historyTokenOriginal))
+                               return treeItem;
                        }
                return null;
        }
-//     TODO when Groups or Search tab is selected then is there a TreeItem selected? guess not....
+
+       public String getFolderName(String historyToken){
+               String[] names = historyToken.split("/");
+               return names[names.length -1];
+       }
 
 }