Revision c24efcc9 src/gr/ebs/gss/client/PopupTree.java
b/src/gr/ebs/gss/client/PopupTree.java | ||
---|---|---|
34 | 34 |
import com.google.gwt.event.logical.shared.OpenHandler; |
35 | 35 |
import com.google.gwt.event.logical.shared.SelectionEvent; |
36 | 36 |
import com.google.gwt.event.logical.shared.SelectionHandler; |
37 |
import com.google.gwt.http.client.URL; |
|
37 | 38 |
import com.google.gwt.user.client.DOM; |
38 | 39 |
import com.google.gwt.user.client.Event; |
39 | 40 |
import com.google.gwt.user.client.History; |
... | ... | |
71 | 72 |
TreeItem item = event.getSelectedItem(); |
72 | 73 |
processItemSelected(item, true); |
73 | 74 |
|
74 |
String path = GSS.get().getApiPath() + GSS.get().getCurrentUserResource().getUsername()+ "/"; |
|
75 |
// Trash is selected |
|
75 |
String path = GSS.get().getApiPath() + GSS.get().getCurrentUserResource().getUsername()+ "/"; |
|
76 |
|
|
77 |
// case: Trash is selected |
|
76 | 78 |
if(GSS.get().getFolders().isTrash(item)){ |
77 | 79 |
TrashResource currentObject = (TrashResource) GSS.get().getFolders().getCurrent().getUserObject(); |
78 |
History.newItem("Trash"+currentObject.getUri().substring(path.lastIndexOf("/"))); |
|
80 |
String finalUri = currentObject.getUri().substring(path.lastIndexOf("/")+1); |
|
81 |
History.newItem("Files/"+finalUri); |
|
82 |
} |
|
83 |
// case: Other's shared option is selected |
|
84 |
else if (GSS.get().getFolders().getCurrent().getUserObject() instanceof OthersResource){ |
|
85 |
String currentPartTrimmed = DisplayHelper.trim(item.getText()); |
|
86 |
String finalUri = URL.encodeComponent("Files/"+path.substring(path.lastIndexOf("/")+1) + currentPartTrimmed); |
|
87 |
|
|
88 |
History.newItem(finalUri); |
|
79 | 89 |
} |
80 |
// other's shared is selected
|
|
81 |
else if (GSS.get().getFolders().isOthersShared(item)){
|
|
82 |
OthersResource currentObject = (OthersResource) GSS.get().getFolders().getCurrent().getUserObject();
|
|
83 |
History.newItem(currentObject.getUri().substring(path.lastIndexOf("/"))
|
|
84 |
+ GSS.get().getFolders().getCurrent().getText());
|
|
90 |
// case: expand Other's shared to folder below
|
|
91 |
else if(GSS.get().getFolders().getCurrent().getUserObject() instanceof OtherUserResource){
|
|
92 |
OtherUserResource currentObject = (OtherUserResource) GSS.get().getFolders().getCurrent().getUserObject();
|
|
93 |
String finalUri = URL.encodeComponent("others/"+ currentObject.getName());
|
|
94 |
History.newItem(finalUri);
|
|
85 | 95 |
} |
86 |
// my shared is selected |
|
87 |
else if(GSS.get().getFolders().isMySharedItem(item)){
|
|
96 |
// case: my shared is selected
|
|
97 |
else if(GSS.get().getFolders().getCurrent().getUserObject() instanceof SharedResource){
|
|
88 | 98 |
SharedResource currentObject = (SharedResource) GSS.get().getFolders().getCurrent().getUserObject(); |
89 |
History.newItem(currentObject.getUri().substring(path.lastIndexOf("/"))
|
|
90 |
+ GSS.get().getFolders().getCurrent().getText());
|
|
99 |
String finalUri = currentObject.getUri().substring(path.lastIndexOf("/")+1);
|
|
100 |
History.newItem("Files/"+finalUri);
|
|
91 | 101 |
} |
92 |
// home folders are selected |
|
102 |
|
|
103 |
// case: home folders are selected |
|
93 | 104 |
else{ |
94 | 105 |
FolderResource currentObject = (FolderResource) GSS.get().getFolders().getCurrent().getUserObject(); |
95 |
int index = path.lastIndexOf("/"); |
|
96 |
String uri = currentObject.getParentURI(); |
|
97 |
String res = null; |
|
98 |
if(uri == null) |
|
99 |
History.newItem("Files" + currentObject.getParentName()); |
|
100 |
else |
|
101 |
History.newItem("Files"+ uri.substring(path.lastIndexOf("/")) + currentObject.getName()); |
|
106 |
String parentUri = currentObject.getParentURI(); |
|
107 |
if(parentUri == null){ |
|
108 |
if(containsTrash(GSS.get().getFolders().getCurrent())){ |
|
109 |
String finalUri = constructPartialPath(GSS.get().getFolders().getCurrent()); |
|
110 |
History.newItem("trash/"+finalUri); |
|
111 |
}else{ |
|
112 |
String nonEncodedUri = "Files/" + currentObject.getName(); |
|
113 |
|
|
114 |
History.newItem(URL.encode(nonEncodedUri)); |
|
115 |
} |
|
116 |
} else if(containsSharedFolder(GSS.get().getFolders().getCurrent())){ |
|
117 |
String finalUri = constructPartialPath(GSS.get().getFolders().getCurrent()); |
|
118 |
History.newItem("shared/"+finalUri); |
|
119 |
}else if(containsSharedFolder(GSS.get().getFolders().getCurrent())){ |
|
120 |
String finalUri = constructPartialPath(GSS.get().getFolders().getCurrent()); |
|
121 |
History.newItem("other's/"+finalUri); |
|
122 |
} |
|
123 |
else{ |
|
124 |
String uri = "Files"+ parentUri.substring(path.lastIndexOf("/")) + URL.encode(currentObject.getName()); |
|
125 |
History.newItem(uri); |
|
126 |
} |
|
102 | 127 |
} |
103 |
|
|
104 | 128 |
} |
129 |
|
|
130 |
|
|
105 | 131 |
}); |
106 | 132 |
|
107 | 133 |
addOpenHandler(new OpenHandler<TreeItem>() { |
... | ... | |
263 | 289 |
treeSelectedItem = newSelectedItem; |
264 | 290 |
} |
265 | 291 |
|
292 |
/** |
|
293 |
* examine whether there is "My Shared" inside path |
|
294 |
* |
|
295 |
* @param selectedItem the selectedItem to check |
|
296 |
*/ |
|
297 |
|
|
298 |
public boolean containsSharedFolder(TreeItem selectedItem){ |
|
299 |
TreeItem parent = selectedItem.getParentItem(); |
|
300 |
while (parent != null){ |
|
301 |
String parentItemText = parent.getText(); |
|
302 |
String parentItemTextTr = DisplayHelper.trim(parentItemText); |
|
303 |
if(parentItemTextTr.equals("My Shared")||parentItemTextTr.equals("Other's Shared")) return true; |
|
304 |
parent = parent.getParentItem(); |
|
305 |
} |
|
306 |
return false; |
|
307 |
} |
|
308 |
public boolean containsTrash(TreeItem selectedItem){ |
|
309 |
TreeItem parent = selectedItem.getParentItem(); |
|
310 |
while (parent != null){ |
|
311 |
String parentItemText = parent.getText(); |
|
312 |
String parentItemTextTr = DisplayHelper.trim(parentItemText); |
|
313 |
if(parentItemTextTr.equals("Trash")) return true; |
|
314 |
parent = parent.getParentItem(); |
|
315 |
} |
|
316 |
return false; |
|
317 |
} |
|
318 |
|
|
319 |
/** |
|
320 |
* construct the partial path of the selected TreeItem |
|
321 |
* |
|
322 |
* @param selectedItem the selectedItem to check |
|
323 |
*/ |
|
324 |
public String constructPartialPath(TreeItem selectedItem){ |
|
325 |
String result = DisplayHelper.trim(selectedItem.getText()); |
|
326 |
TreeItem parent = selectedItem.getParentItem(); |
|
327 |
while (!(DisplayHelper.trim(parent.getText()).equals("My Shared") || DisplayHelper.trim(parent.getText()).equals("Other's Shared")||DisplayHelper.trim(parent.getText()).equals("Trash"))){ |
|
328 |
result = DisplayHelper.trim(parent.getText()) + "/" + result; |
|
329 |
if(result.equals("My Shared")||result.equals("Other's Shared")) return result; |
|
330 |
parent = parent.getParentItem(); |
|
331 |
} |
|
332 |
|
|
333 |
return result; |
|
334 |
} |
|
335 |
|
|
336 |
|
|
266 | 337 |
} |
Also available in: Unified diff