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.GroupUserResource;
import gr.ebs.gss.client.rest.resource.OtherUserResource;
-import gr.ebs.gss.client.rest.resource.OthersResource;
-import gr.ebs.gss.client.rest.resource.TrashResource;
+import gr.ebs.gss.client.rest.resource.RestResource;
import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.event.dom.client.ContextMenuEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
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;
public void onSelection(SelectionEvent<TreeItem> event) {
TreeItem item = event.getSelectedItem();
processItemSelected(item, true);
-
- String path = GSS.get().getApiPath() + GSS.get().getCurrentUserResource().getUsername()+ "/";
-
- if(GSS.get().getFolders().isTrash(item)){
- TrashResource currentObject = (TrashResource) GSS.get().getFolders().getCurrent().getUserObject();
- History.newItem(currentObject.getUri().substring(path.lastIndexOf("/")) + GSS.get().getFolders().getCurrent().getText());
- }else if (GSS.get().getFolders().isMyShares(item)){
- GroupUserResource currentObject = (GroupUserResource)GSS.get().getFolders().getCurrent().getUserObject();
- History.newItem(currentObject.getUri().substring(path.lastIndexOf("/")) + GSS.get().getFolders().getCurrent().getText());
- }else if (GSS.get().getFolders().isOthersShared(item)){
- OthersResource currentObject = (OthersResource) GSS.get().getFolders().getCurrent().getUserObject();
- History.newItem(currentObject.getUri().substring(path.lastIndexOf("/")) + GSS.get().getFolders().getCurrent().getText());
- }else{
- FolderResource currentObject = (FolderResource) GSS.get().getFolders().getCurrent().getUserObject();
- History.newItem("Files" + currentObject.getParentURI().substring(path.lastIndexOf("/")) + GSS.get().getFolders().getCurrent().getText());
+ String path = GSS.get().getApiPath() + GSS.get().getCurrentUserResource().getUsername()+ "/";
+ ((RestResource) GSS.get().getFolders().getCurrent().getUserObject()).updateHistoryAbs(item,path);
}
-
- }
});
addOpenHandler(new OpenHandler<TreeItem>() {
}
public void processItemSelected(TreeItem item, boolean fireEvents) {
-
- if (GSS.get().getCurrentSelection() == null || !GSS.get().getCurrentSelection().equals(item.getUserObject()))
+ 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);
treeSelectedItem = newSelectedItem;
}
+ /**
+ * 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;
+ }
+ /**
+ * examine whether a folder name like "Trash", "My Shared", "Other's Shared" is inside path
+ *
+ * @param selectedItem the selectedTreeItem to check
+ */
+
+ public boolean containsFolder(TreeItem selectedItem, String folderName){
+ TreeItem parent = selectedItem.getParentItem();
+ while (parent != null){
+ String parentItemText = parent.getText();
+ String parentItemTextTr = DisplayHelper.trim(parentItemText);
+ if(parentItemTextTr.equals(folderName)) return true;
+ parent = parent.getParentItem();
+ }
+ return false;
+ }
}