Button ok = new Button("Delete", new ClickHandler() {\r
@Override\r
public void onClick(ClickEvent event) {\r
- app.deleteFolder(folder);\r
+ app.deleteFolder(folder, null);\r
hide();\r
}\r
});\r
switch (evt.getKeyCode()) {\r
case KeyCodes.KEY_ENTER:\r
hide();\r
- app.deleteFolder(folder);\r
+ app.deleteFolder(folder, null);\r
break;\r
case KeyCodes.KEY_ESCAPE:\r
hide();\r
app.copySubfolders(iterf, folder.getParent().getOwner(), folder.getParent().getUri() + "/" + newName, new Command() {\r
@Override\r
public void execute() {\r
- app.deleteFolder(folder);\r
+ app.deleteFolder(folder, null);\r
updateMetadata(path + "?update=", perms);\r
}\r
});\r
app.copySubfolders(iterf, folder.getParent().getOwner(), folder.getParent().getUri() + "/" + newName, new Command() {\r
@Override\r
public void execute() {\r
- app.deleteFolder(folder);\r
- app.updateFolder(folder.getParent(), false, new Command() {\r
- \r
- @Override\r
- public void execute() {\r
- app.updateMySharedRoot();\r
- }\r
- });\r
+ app.deleteFolder(folder, new Command() {\r
+ \r
+ @Override\r
+ public void execute() {\r
+ app.updateFolder(folder.getParent(), false, new Command() {\r
+ \r
+ @Override\r
+ public void execute() {\r
+ app.updateMySharedRoot();\r
+ }\r
+ });\r
+ }\r
+ });\r
}\r
});\r
}\r
History.newItem(key);
}
- public void deleteFolder(final Folder folder) {
+ public void deleteFolder(final Folder folder, final Command callback) {
String path = getApiPath() + folder.getOwner() + "/" + folder.getContainer() + "?format=json&delimiter=/&prefix=" + URL.encodeQueryString(folder.getPrefix()) + "&t=" + System.currentTimeMillis();
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, path);
builder.setHeader("X-Auth-Token", getToken());
JSONArray array = json.isArray();
int i = 0;
if (array != null) {
- deleteObject(folder, i, array);
+ deleteObject(folder, i, array, callback);
}
}
}
}
}
- void deleteObject(final Folder folder, final int i, final JSONArray array) {
+ void deleteObject(final Folder folder, final int i, final JSONArray array, final Command callback) {
if (i < array.size()) {
JSONObject o = array.get(i).isObject();
if (o != null && !o.containsKey("subdir")) {
DeleteRequest delete = new DeleteRequest(getApiPath(), folder.getOwner(), URL.encode(path)) {
@Override
public void onSuccess(Resource result) {
- deleteObject(folder, i + 1, array);
+ deleteObject(folder, i + 1, array, callback);
}
@Override
array.set(l++, array2.get(j));
}
}
- deleteObject(folder, i + 1, array);
+ deleteObject(folder, i + 1, array, callback);
}
}
@Override
public void execute() {
updateStatistics();
+ if (callback != null)
+ callback.execute();
}
});
}