-// public void fetchFolder(final Tag f, final ListDataProvider<Tag> dataProvider) {
-// dataProvider.flush();
-// Scheduler.get().scheduleDeferred(new ScheduledCommand() {
-// @Override
-// public void execute() {
-// final Pithos app = Pithos.get();
-// String path = app.getApiPath() + app.getUsername() + "/" + f.getContainer() + "?format=json&delimiter=/&prefix=" + f.getPrefix();
-// GetRequest<Tag> getFolder = new GetRequest<Tag>(Tag.class, path, f) {
-// @Override
-// public void onSuccess(Tag result) {
-// app.showFiles(result);
-// Iterator<Tag> iter = result.getSubfolders().iterator();
-// fetchFolder(iter, dataProvider, result.getSubfolders());
-// }
-//
-// @Override
-// public void onError(Throwable t) {
-// GWT.log("Error getting folder", t);
-// if (t instanceof RestException)
-// Pithos.get().displayError("Error getting folder: " + ((RestException) t).getHttpStatusText());
-// else
-// Pithos.get().displayError("System error fetching folder: " + t.getMessage());
-// }
-// };
-// getFolder.setHeader("X-Auth-Token", app.getToken());
-// Scheduler.get().scheduleDeferred(getFolder);
-// }
-// });
-// }
+ public void fetchTag(Tag t) {
+ Pithos app = Pithos.get();
+ AccountResource account = app.getAccount();
+ Iterator<Folder> iter = account.getContainers().iterator();
+ fetchTag(iter, t, new LinkedHashSet<File>());
+ }
+
+ private void fetchTag(final Iterator<Folder> iter, final Tag t, final Set<File> files) {
+ final Pithos app = Pithos.get();
+ if (iter.hasNext()) {
+ Folder f = iter.next();
+ String path = app.getApiPath() + app.getUsername() + f.getUri() + "?format=json&meta=" + t.getName();
+ GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, path) {
+ @Override
+ public void onSuccess(Folder result) {
+ files.addAll(result.getFiles());
+ fetchTag(iter, t, files);
+ }
+
+ @Override
+ public void onError(Throwable t) {
+ GWT.log("Error getting folder", t);
+ if (t instanceof RestException)
+ Pithos.get().displayError("Error getting folder: " + ((RestException) t).getHttpStatusText());
+ else
+ Pithos.get().displayError("System error fetching folder: " + t.getMessage());
+ }
+ };
+ getFolder.setHeader("X-Auth-Token", app.getToken());
+ Scheduler.get().scheduleDeferred(getFolder);
+ }
+ else {
+ app.showFiles(files);
+ }
+ }