import com.google.gwt.view.client.SingleSelectionModel;
import com.google.gwt.view.client.TreeViewModel;
import gr.grnet.pithos.web.client.FolderContextMenu;
-import gr.grnet.pithos.web.client.GSS;
+import gr.grnet.pithos.web.client.Pithos;
import gr.grnet.pithos.web.client.foldertree.FolderTreeView.Templates;
import gr.grnet.pithos.web.client.rest.GetRequest;
import gr.grnet.pithos.web.client.rest.RestException;
@Override
public void render(Context context, Folder folder, SafeHtmlBuilder safeHtmlBuilder) {
- String html = AbstractImagePrototype.create(FolderTreeView.images.folderYellow()).getHTML();
+ String html;
+ if (folder.isTrash())
+ html = AbstractImagePrototype.create(FolderTreeView.images.emptyTrash()).getHTML();
+ else
+ html = AbstractImagePrototype.create(FolderTreeView.images.folderYellow()).getHTML();
safeHtmlBuilder.appendHtmlConstant(html);
safeHtmlBuilder.append(Templates.INSTANCE.nameSpan(folder.getName()));
}
public void onBrowserEvent(Cell.Context context, com.google.gwt.dom.client.Element parent, Folder folder, com.google.gwt.dom.client.NativeEvent event, com.google.gwt.cell.client.ValueUpdater<Folder> valueUpdater) {
if (event.getType().equals(ContextMenuEvent.getType().getName())) {
FolderTreeViewModel.this.selectionModel.setSelected(folder, true);
- FolderContextMenu menu = new FolderContextMenu(FolderTreeView.images, folder);
- menu.setPopupPosition(event.getClientX(), event.getClientY());
- menu.show();
+ if (!folder.isTrash()) {
+ FolderContextMenu menu = new FolderContextMenu(FolderTreeView.images, folder);
+ menu.setPopupPosition(event.getClientX(), event.getClientY());
+ menu.show();
+ }
}
}
};
}
private void fetchFolder(final Iterator<Folder> iter, final ListDataProvider<Folder> dataProvider, final Set<Folder> folders) {
+ final Pithos app = Pithos.get();
if (iter.hasNext()) {
final Folder f = iter.next();
- GSS app = GSS.get();
String path = app.getApiPath() + app.getUsername() + "/" + f.getContainer() + "?format=json&delimiter=/&prefix=" + f.getPrefix();
GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, path, f) {
@Override
public void onError(Throwable t) {
GWT.log("Error getting folder", t);
if (t instanceof RestException)
- GSS.get().displayError("Error getting folder: " + ((RestException) t).getHttpStatusText());
+ Pithos.get().displayError("Error getting folder: " + ((RestException) t).getHttpStatusText());
else
- GSS.get().displayError("System error fetching folder: " + t.getMessage());
+ Pithos.get().displayError("System error fetching folder: " + t.getMessage());
}
};
getFolder.setHeader("X-Auth-Token", app.getToken());
else {
dataProvider.getList().clear();
dataProvider.getList().addAll(folders);
- if (dataProvider.equals(rootDataProvider))
+ if (dataProvider.equals(rootDataProvider)) {
selectionModel.setSelected(dataProvider.getList().get(0), true);
+ Folder f = new Folder("Trash");
+ f.setTrash(true);
+ f.setContainer("trash");
+ dataProvider.getList().add(f);
+ Pithos.get().updateTags();
+ }
}
}
dataProviderMap.put(folder, new ListDataProvider<Folder>());
}
final ListDataProvider<Folder> dataProvider = dataProviderMap.get(folder);
- fetchFolder(folder, dataProvider);
+ if (!folder.isTrash())
+ fetchFolder(folder, dataProvider);
+ else
+ Pithos.get().showFiles(folder);
}
public void fetchFolder(final Folder f, final ListDataProvider<Folder> dataProvider) {
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
- final GSS app = GSS.get();
+ final Pithos app = Pithos.get();
String path = app.getApiPath() + app.getUsername() + "/" + f.getContainer() + "?format=json&delimiter=/&prefix=" + f.getPrefix();
GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, path, f) {
@Override
public void onSuccess(Folder result) {
+ app.showFiles(result);
Iterator<Folder> iter = result.getSubfolders().iterator();
fetchFolder(iter, dataProvider, result.getSubfolders());
}
public void onError(Throwable t) {
GWT.log("Error getting folder", t);
if (t instanceof RestException)
- GSS.get().displayError("Error getting folder: " + ((RestException) t).getHttpStatusText());
+ Pithos.get().displayError("Error getting folder: " + ((RestException) t).getHttpStatusText());
else
- GSS.get().displayError("System error fetching folder: " + t.getMessage());
+ Pithos.get().displayError("System error fetching folder: " + t.getMessage());
}
};
getFolder.setHeader("X-Auth-Token", app.getToken());