X-Git-Url: https://code.grnet.gr/git/pithos/blobdiff_plain/c24efcc90a5f19527adda88aeca794553e45ddc1..98b5916320584c3e6ca5a75bcf5b8cb17ed378fc:/src/gr/ebs/gss/client/PopupTree.java diff --git a/src/gr/ebs/gss/client/PopupTree.java b/src/gr/ebs/gss/client/PopupTree.java index 7e37111..308f463 100644 --- a/src/gr/ebs/gss/client/PopupTree.java +++ b/src/gr/ebs/gss/client/PopupTree.java @@ -23,9 +23,12 @@ 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; + import com.google.gwt.dom.client.NativeEvent; import com.google.gwt.event.dom.client.ContextMenuEvent; import com.google.gwt.event.dom.client.ContextMenuHandler; @@ -34,10 +37,8 @@ import com.google.gwt.event.logical.shared.OpenEvent; import com.google.gwt.event.logical.shared.OpenHandler; import com.google.gwt.event.logical.shared.SelectionEvent; import com.google.gwt.event.logical.shared.SelectionHandler; -import com.google.gwt.http.client.URL; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Event; -import com.google.gwt.user.client.History; import com.google.gwt.user.client.ui.Tree; import com.google.gwt.user.client.ui.TreeItem; @@ -69,65 +70,13 @@ public class PopupTree extends Tree { @Override public void onSelection(SelectionEvent event) { - TreeItem item = event.getSelectedItem(); - processItemSelected(item, true); - + TreeItem treeItem = event.getSelectedItem(); + processItemSelected(treeItem); String path = GSS.get().getApiPath() + GSS.get().getCurrentUserResource().getUsername()+ "/"; - -// case: Trash is selected - if(GSS.get().getFolders().isTrash(item)){ - TrashResource currentObject = (TrashResource) GSS.get().getFolders().getCurrent().getUserObject(); - String finalUri = currentObject.getUri().substring(path.lastIndexOf("/")+1); - History.newItem("Files/"+finalUri); - } -// case: Other's shared option is selected - else if (GSS.get().getFolders().getCurrent().getUserObject() instanceof OthersResource){ - String currentPartTrimmed = DisplayHelper.trim(item.getText()); - String finalUri = URL.encodeComponent("Files/"+path.substring(path.lastIndexOf("/")+1) + currentPartTrimmed); - - History.newItem(finalUri); - } -// case: expand Other's shared to folder below - else if(GSS.get().getFolders().getCurrent().getUserObject() instanceof OtherUserResource){ - OtherUserResource currentObject = (OtherUserResource) GSS.get().getFolders().getCurrent().getUserObject(); - String finalUri = URL.encodeComponent("others/"+ currentObject.getName()); - History.newItem(finalUri); - } -// case: my shared is selected - else if(GSS.get().getFolders().getCurrent().getUserObject() instanceof SharedResource){ - SharedResource currentObject = (SharedResource) GSS.get().getFolders().getCurrent().getUserObject(); - String finalUri = currentObject.getUri().substring(path.lastIndexOf("/")+1); - History.newItem("Files/"+finalUri); + String constructedUri = ((RestResource) GSS.get().getFolders().getCurrent().getUserObject()).constructUri(treeItem, path); + GSS.get().updateHistory(constructedUri); +// ((RestResource) GSS.get().getFolders().getCurrent().getUserObject()).updateHistory(treeItem,path); } - -// case: home folders are selected - else{ - FolderResource currentObject = (FolderResource) GSS.get().getFolders().getCurrent().getUserObject(); - String parentUri = currentObject.getParentURI(); - if(parentUri == null){ - if(containsTrash(GSS.get().getFolders().getCurrent())){ - String finalUri = constructPartialPath(GSS.get().getFolders().getCurrent()); - History.newItem("trash/"+finalUri); - }else{ - String nonEncodedUri = "Files/" + currentObject.getName(); - - History.newItem(URL.encode(nonEncodedUri)); - } - } else if(containsSharedFolder(GSS.get().getFolders().getCurrent())){ - String finalUri = constructPartialPath(GSS.get().getFolders().getCurrent()); - History.newItem("shared/"+finalUri); - }else if(containsSharedFolder(GSS.get().getFolders().getCurrent())){ - String finalUri = constructPartialPath(GSS.get().getFolders().getCurrent()); - History.newItem("other's/"+finalUri); - } - else{ - String uri = "Files"+ parentUri.substring(path.lastIndexOf("/")) + URL.encode(currentObject.getName()); - History.newItem(uri); - } - } - } - - }); addOpenHandler(new OpenHandler() { @@ -203,22 +152,17 @@ public class PopupTree extends Tree { menu.show(); } - public void processItemSelected(TreeItem item, boolean fireEvents) { - - if (GSS.get().getCurrentSelection() == null || !GSS.get().getCurrentSelection().equals(item.getUserObject())) + public void processItemSelected(TreeItem item) { + if (GSS.get().getCurrentSelection() == null || !GSS.get().getCurrentSelection().equals(item.getUserObject())) GSS.get().setCurrentSelection(item.getUserObject()); if (!GSS.get().isFileListShowing()) GSS.get().showFileList(); // refresh Others Shared Node - if (GSS.get().getFolders().isOthersShared(item)) { + if (GSS.get().getFolders().isOthersShared(item)){ GSS.get().getFolders().update(item); GSS.get().showFileList(); } - // refresh Others Shared User Node -// else if(GSS.get().getFolders().isOthersSharedItem(item) && -// item.getUserObject() instanceof UserDTO) -// GSS.get().getFolders().update(item); if (!item.equals(treeSelectedItem)) processSelection(item); @@ -288,50 +232,48 @@ public class PopupTree extends Tree { public void setTreeSelectedItem(TreeItem newSelectedItem) { treeSelectedItem = newSelectedItem; } - /** - * examine whether there is "My Shared" inside path - * - * @param selectedItem the selectedItem to check + * Method that takes a folderName and finds the corresponding treeItem object and returns it + * @param historyToken + * @return treeItem */ - public boolean containsSharedFolder(TreeItem selectedItem){ - TreeItem parent = selectedItem.getParentItem(); - while (parent != null){ - String parentItemText = parent.getText(); - String parentItemTextTr = DisplayHelper.trim(parentItemText); - if(parentItemTextTr.equals("My Shared")||parentItemTextTr.equals("Other's Shared")) return true; - parent = parent.getParentItem(); - } - return false; - } - public boolean containsTrash(TreeItem selectedItem){ - TreeItem parent = selectedItem.getParentItem(); - while (parent != null){ - String parentItemText = parent.getText(); - String parentItemTextTr = DisplayHelper.trim(parentItemText); - if(parentItemTextTr.equals("Trash")) return true; - parent = parent.getParentItem(); - } - return false; + public TreeItem getTreeItem (String historyToken){ + String historyTokenOriginal = historyToken.replace("+", " "); + String path = GSS.get().getApiPath() + GSS.get().getCurrentUserResource().getUsername()+ "/"; + Iterator it = GSS.get().getFolders().getPopupTree().treeItemIterator() ; + while(it.hasNext()){ + 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; } - /** - * construct the partial path of the selected TreeItem - * - * @param selectedItem the selectedItem to check - */ - public String constructPartialPath(TreeItem selectedItem){ - String result = DisplayHelper.trim(selectedItem.getText()); - TreeItem parent = selectedItem.getParentItem(); - while (!(DisplayHelper.trim(parent.getText()).equals("My Shared") || DisplayHelper.trim(parent.getText()).equals("Other's Shared")||DisplayHelper.trim(parent.getText()).equals("Trash"))){ - result = DisplayHelper.trim(parent.getText()) + "/" + result; - if(result.equals("My Shared")||result.equals("Other's Shared")) return result; - parent = parent.getParentItem(); - } - - return result; + public String getFolderName(String historyToken){ + String[] names = historyToken.split("/"); + return names[names.length -1]; } - }