Revision ea30dad9
b/src/gr/grnet/pithos/web/client/FileList.java | ||
---|---|---|
401 | 401 |
}); |
402 | 402 |
|
403 | 403 |
celltable.setSelectionModel(selectionModel, PithosSelectionEventManager.<File> createDefaultManager()); |
404 |
// celltable.setPageSize(Pithos.VISIBLE_FILE_COUNT); |
|
405 | 404 |
|
406 | 405 |
sinkEvents(Event.ONCONTEXTMENU); |
407 |
// sinkEvents(Event.ONMOUSEUP); |
|
408 |
// sinkEvents(Event.ONMOUSEDOWN); |
|
409 |
// sinkEvents(Event.ONCLICK); |
|
410 |
// sinkEvents(Event.ONKEYDOWN); |
|
411 | 406 |
sinkEvents(Event.ONDBLCLICK); |
412 | 407 |
Pithos.preventIESelection(); |
413 | 408 |
} |
... | ... | |
419 | 414 |
@Override |
420 | 415 |
public void onBrowserEvent(Event event) { |
421 | 416 |
|
422 |
// if (files == null || files.size() == 0) { |
|
423 |
// if (DOM.eventGetType(event) == Event.ONCONTEXTMENU && getSelectedFiles().size() == 0) { |
|
424 |
// contextMenu = new FileContextMenu(images, false, true); |
|
425 |
// contextMenu.show(); |
|
426 |
// event.preventDefault(); |
|
427 |
// event.cancelBubble(true); |
|
428 |
// } |
|
429 |
// return; |
|
430 |
// } |
|
431 |
// if (DOM.eventGetType(event) == Event.ONCONTEXTMENU && getSelectedFiles().size() != 0) { |
|
432 |
// GWT.log("*****GOING TO SHOW CONTEXT MENU ****", null); |
|
433 |
// contextMenu = new FileContextMenu(images, false, false); |
|
434 |
// contextMenu = contextMenu.onEvent(event); |
|
435 |
// event.cancelBubble(true); |
|
436 |
// event.preventDefault(); |
|
437 |
// } else if (DOM.eventGetType(event) == Event.ONCONTEXTMENU && getSelectedFiles().size() == 0) { |
|
438 |
// contextMenu = new FileContextMenu(images, false, true); |
|
439 |
// contextMenu = contextMenu.onEmptyEvent(event); |
|
440 |
// event.cancelBubble(true); |
|
441 |
// event.preventDefault(); |
|
442 |
// } else |
|
443 | 417 |
if (DOM.eventGetType(event) == Event.ONDBLCLICK) |
444 | 418 |
if (getSelectedFiles().size() == 1) { |
445 | 419 |
File file = getSelectedFiles().get(0); |
b/src/gr/grnet/pithos/web/client/Pithos.java | ||
---|---|---|
488 | 488 |
} |
489 | 489 |
}); |
490 | 490 |
|
491 |
Scheduler.get().scheduleFixedDelay(new RepeatingCommand() { |
|
492 |
|
|
493 |
@Override |
|
494 |
public boolean execute() { |
|
495 |
Folder f = getSelection(); |
|
496 |
if (f != null) { |
|
497 |
if (getSelectedTree().equals(folderTreeView)) |
|
498 |
updateFolder(f, true, null, false); |
|
499 |
else if (getSelectedTree().equals(mysharedTreeView)) |
|
500 |
updateSharedFolder(f, true); |
|
501 |
} |
|
502 |
return true; |
|
503 |
} |
|
504 |
}, 3000); |
|
491 |
// Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {
|
|
492 |
// |
|
493 |
// @Override
|
|
494 |
// public boolean execute() {
|
|
495 |
// Folder f = getSelection();
|
|
496 |
// if (f != null) {
|
|
497 |
// if (getSelectedTree().equals(folderTreeView))
|
|
498 |
// updateFolder(f, true, null, false);
|
|
499 |
// else if (getSelectedTree().equals(mysharedTreeView))
|
|
500 |
// updateSharedFolder(f, true);
|
|
501 |
// }
|
|
502 |
// return true;
|
|
503 |
// }
|
|
504 |
// }, 3000);
|
|
505 | 505 |
} |
506 | 506 |
|
507 | 507 |
public void applyPermissions(Folder f) { |
... | ... | |
892 | 892 |
else if (o != null) { |
893 | 893 |
String subdir = o.get("subdir").isString().stringValue(); |
894 | 894 |
subdir = subdir.substring(0, subdir.length() - 1); |
895 |
String path = getApiPath() + getUsername() + "/" + folder.getContainer() + "?format=json&delimiter=/&prefix=" + URL.encodeQueryString(subdir) + "&t=" + System.currentTimeMillis();
|
|
895 |
String path = getApiPath() + folder.getOwner() + "/" + folder.getContainer() + "?format=json&delimiter=/&prefix=" + URL.encodeQueryString(subdir) + "&t=" + System.currentTimeMillis();
|
|
896 | 896 |
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, path); |
897 | 897 |
builder.setHeader("X-Auth-Token", getToken()); |
898 | 898 |
try { |
... | ... | |
924 | 924 |
} |
925 | 925 |
} |
926 | 926 |
else { |
927 |
if (folder.isContainer()) { |
|
928 |
updateFolder(folder, true, new Command() { |
|
929 |
|
|
930 |
@Override |
|
931 |
public void execute() { |
|
932 |
updateStatistics(); |
|
933 |
if (callback != null) |
|
934 |
callback.execute(); |
|
935 |
} |
|
936 |
}, false); |
|
937 |
return; |
|
938 |
} |
|
927 | 939 |
String path = folder.getUri(); |
928 | 940 |
DeleteRequest deleteFolder = new DeleteRequest(getApiPath(), getUsername(), URL.encode(path)) { |
929 | 941 |
@Override |
b/src/gr/grnet/pithos/web/client/animation/FadeIn.java | ||
---|---|---|
54 | 54 |
double progress1 = 1.0 - progress; |
55 | 55 |
currOpacity = initialOpacity * progress1; |
56 | 56 |
DOM.setStyleAttribute(widget.getElement(), "opacity", ""+new Double(1d - currOpacity / 100d)); |
57 |
//required for ie to work |
|
58 |
//Disabled because IE has bugs rendering non-opaque objects |
|
59 |
//int opacityToSet = new Double(currOpacity).intValue(); |
|
60 |
//DOM.setStyleAttribute(widget.getElement(), "filter", "alpha(opacity=" + (initialOpacity - opacityToSet) + ")"); |
|
61 | 57 |
} |
62 | 58 |
} |
63 | 59 |
|
b/src/gr/grnet/pithos/web/client/animation/FadeOut.java | ||
---|---|---|
55 | 55 |
double progress1 = 1.0 - progress; |
56 | 56 |
currOpacity = initialOpacity*progress1; |
57 | 57 |
DOM.setStyleAttribute(widget.getElement(), "opacity", ""+new Double(currOpacity/100d)); |
58 |
//required for ie to work |
|
59 |
//Disabled because IE has bugs rendering non-opaque objects |
|
60 |
//int opacityToSet = new Double(currOpacity).intValue(); |
|
61 |
//DOM.setStyleAttribute(widget.getElement(), "filter", "alpha(opacity="+currOpacity+")"); |
|
62 | 58 |
} |
63 | 59 |
} |
64 | 60 |
|
b/src/gr/grnet/pithos/web/client/commands/EmptyTrashCommand.java | ||
---|---|---|
72 | 72 |
|
73 | 73 |
final Folder trash = app.getAccount().getTrash(); |
74 | 74 |
if (trash != null) { |
75 |
Iterator<File> iter = trash.getFiles().iterator(); |
|
76 |
deleteFile(iter, new Command() { |
|
77 |
|
|
78 |
@Override |
|
79 |
public void execute() { |
|
80 |
Iterator<Folder> iter2 = trash.getSubfolders().iterator(); |
|
81 |
deleteSubfolder(iter2, new Command() { |
|
82 |
|
|
83 |
@Override |
|
84 |
public void execute() { |
|
85 |
app.updateTrash(true, new Command() { |
|
86 |
|
|
87 |
@Override |
|
88 |
public void execute() { |
|
89 |
app.updateStatistics(); |
|
90 |
} |
|
91 |
}); |
|
92 |
} |
|
93 |
}); |
|
94 |
} |
|
95 |
}); |
|
75 |
app.deleteFolder(trash, null); //deleteFolder will not delete the folder itself if it is a container |
|
96 | 76 |
} |
97 | 77 |
} |
98 | 78 |
|
/dev/null | ||
---|---|---|
1 |
/* |
|
2 |
* Copyright 2011-2012 GRNET S.A. All rights reserved. |
|
3 |
* |
|
4 |
* Redistribution and use in source and binary forms, with or |
|
5 |
* without modification, are permitted provided that the following |
|
6 |
* conditions are met: |
|
7 |
* |
|
8 |
* 1. Redistributions of source code must retain the above |
|
9 |
* copyright notice, this list of conditions and the following |
|
10 |
* disclaimer. |
|
11 |
* |
|
12 |
* 2. Redistributions in binary form must reproduce the above |
|
13 |
* copyright notice, this list of conditions and the following |
|
14 |
* disclaimer in the documentation and/or other materials |
|
15 |
* provided with the distribution. |
|
16 |
* |
|
17 |
* THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS |
|
18 |
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
19 |
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|
20 |
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR |
|
21 |
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
22 |
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
23 |
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
|
24 |
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
|
25 |
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
26 |
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
|
27 |
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
|
28 |
* POSSIBILITY OF SUCH DAMAGE. |
|
29 |
* |
|
30 |
* The views and conclusions contained in the software and |
|
31 |
* documentation are those of the authors and should not be |
|
32 |
* interpreted as representing official policies, either expressed |
|
33 |
* or implied, of GRNET S.A. |
|
34 |
*/ |
|
35 |
package gr.grnet.pithos.web.client.commands; |
|
36 |
|
|
37 |
import com.google.gwt.user.client.Command; |
|
38 |
import com.google.gwt.user.client.ui.PopupPanel; |
|
39 |
|
|
40 |
|
|
41 |
public class ResreshOthersSharesCommand implements Command{ |
|
42 |
private PopupPanel containerPanel; |
|
43 |
|
|
44 |
public ResreshOthersSharesCommand(PopupPanel _containerPanel){ |
|
45 |
containerPanel = _containerPanel; |
|
46 |
} |
|
47 |
|
|
48 |
@Override |
|
49 |
public void execute() { |
|
50 |
containerPanel.hide(); |
|
51 |
//TODO:CELLTREE |
|
52 |
//app.getFolders().update( app.getFolders().getCurrent()); |
|
53 |
} |
|
54 |
|
|
55 |
} |
b/src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java | ||
---|---|---|
130 | 130 |
} |
131 | 131 |
final ListDataProvider<Folder> dataProvider = dataProviderMap.get(f); |
132 | 132 |
//This prevents the loading indicator |
133 |
// dataProvider.getList().clear(); |
|
134 |
// dataProvider.getList().addAll(f.getSubfolders()); |
|
135 | 133 |
fetchFolder(f, dataProvider, false, null); |
136 | 134 |
return new DefaultNodeInfo<Folder>(dataProvider, folderCell, selectionModel, null); |
137 | 135 |
} |
b/src/gr/grnet/pithos/web/client/grouptree/GroupTreeView.java | ||
---|---|---|
174 | 174 |
|
175 | 175 |
@Override |
176 | 176 |
public Folder getSelection() { |
177 |
// TODO Auto-generated method stub |
|
178 | 177 |
return null; |
179 | 178 |
} |
180 | 179 |
|
b/src/gr/grnet/pithos/web/client/tagtree/Tag.java | ||
---|---|---|
60 | 60 |
return name; |
61 | 61 |
} |
62 | 62 |
|
63 |
// public void populate(Response response) { |
|
64 |
// String header = response.getHeader("Last-Modified"); |
|
65 |
// if (header != null) |
|
66 |
// lastModified = DateTimeFormat.getFormat(PredefinedFormat.RFC_2822).parse(header); |
|
67 |
// |
|
68 |
// header = response.getHeader("X-Container-Bytes-Used"); |
|
69 |
// if (header != null) |
|
70 |
// bytesUsed = Long.valueOf(header); |
|
71 |
// |
|
72 |
// subfolders.clear(); //This is necessary in case we update a pre-existing Tag so that stale subfolders won't show up |
|
73 |
// files.clear(); |
|
74 |
// JSONValue json = JSONParser.parseStrict(response.getText()); |
|
75 |
// JSONArray array = json.isArray(); |
|
76 |
// if (array != null) { |
|
77 |
// for (int i=0; i<array.size(); i++) { |
|
78 |
// JSONObject o = array.get(i).isObject(); |
|
79 |
// if (o != null) { |
|
80 |
// String contentType = unmarshallString(o, "content_type"); |
|
81 |
// if (o.containsKey("subdir") || (contentType != null && (contentType.startsWith("application/directory") || contentType.startsWith("application/folder")))) { |
|
82 |
// Tag f = new Tag(); |
|
83 |
// f.populate(this, o, container); |
|
84 |
// subfolders.add(f); |
|
85 |
// } |
|
86 |
// else { |
|
87 |
// File file = new File(); |
|
88 |
// file.populate(this, o, container); |
|
89 |
// files.add(file); |
|
90 |
// } |
|
91 |
// } |
|
92 |
// } |
|
93 |
// } |
|
94 |
// } |
|
95 |
// |
|
96 |
// public void populate(Tag parent, JSONObject o, String aContainer) { |
|
97 |
// this.parent = parent; |
|
98 |
// String path = null; |
|
99 |
// if (o.containsKey("subdir")) { |
|
100 |
// path = unmarshallString(o, "subdir"); |
|
101 |
// } |
|
102 |
// else { |
|
103 |
// path = unmarshallString(o, "name"); |
|
104 |
// lastModified = unmarshallDate(o, "last_modified"); |
|
105 |
// } |
|
106 |
// if (path.endsWith("/")) |
|
107 |
// path = path.substring(0, path.length() - 1); |
|
108 |
// if (path.contains("/")) |
|
109 |
// name = path.substring(path.lastIndexOf("/") + 1, path.length()); //strip the prefix |
|
110 |
// else |
|
111 |
// name = path; |
|
112 |
// if (aContainer != null) { |
|
113 |
// container = aContainer; |
|
114 |
// prefix = path; |
|
115 |
// } |
|
116 |
// else { |
|
117 |
// container = name; |
|
118 |
// prefix = ""; |
|
119 |
// } |
|
120 |
// } |
|
121 |
// |
|
122 |
// public static Tag createFromResponse(Response response, Tag result) { |
|
123 |
// Tag f = null; |
|
124 |
// if (result == null) |
|
125 |
// f = new Tag(); |
|
126 |
// else |
|
127 |
// f = result; |
|
128 |
// |
|
129 |
// f.populate(response); |
|
130 |
// return f; |
|
131 |
// } |
|
132 |
|
|
133 | 63 |
@Override |
134 | 64 |
public boolean equals(Object other) { |
135 | 65 |
if (other instanceof Tag) { |
b/src/gr/grnet/pithos/web/client/tagtree/TagTreeViewModel.java | ||
---|---|---|
114 | 114 |
}), null, null); |
115 | 115 |
} |
116 | 116 |
else if (value instanceof String) { |
117 |
//fetchAllTags(); |
|
118 | 117 |
return new DefaultNodeInfo<Tag>(tagDataProvider, tagCell, selectionModel, null); |
119 | 118 |
} |
120 | 119 |
else |
Also available in: Unified diff