Revision 33b61be6 web_client/src/gr/grnet/pithos/web/client/FolderPropertiesDialog.java
b/web_client/src/gr/grnet/pithos/web/client/FolderPropertiesDialog.java | ||
---|---|---|
36 | 36 |
|
37 | 37 |
import com.google.gwt.core.client.Scheduler; |
38 | 38 |
import com.google.gwt.event.dom.client.KeyDownEvent; |
39 |
import com.google.gwt.user.client.Command; |
|
39 | 40 |
import com.google.gwt.user.client.Event; |
41 |
import gr.grnet.pithos.web.client.foldertree.File; |
|
40 | 42 |
import gr.grnet.pithos.web.client.foldertree.Folder; |
41 | 43 |
import gr.grnet.pithos.web.client.foldertree.Resource; |
42 | 44 |
import gr.grnet.pithos.web.client.rest.PostCommand; |
... | ... | |
64 | 66 |
import com.google.gwt.user.client.ui.TabPanel; |
65 | 67 |
import com.google.gwt.user.client.ui.TextBox; |
66 | 68 |
import com.google.gwt.user.client.ui.VerticalPanel; |
69 |
import java.util.Iterator; |
|
67 | 70 |
|
68 | 71 |
/** |
69 | 72 |
* The 'Folder properties' dialog box implementation. |
... | ... | |
132 | 135 |
generalTable.setText(2, 0, "Creator"); |
133 | 136 |
generalTable.setText(3, 0, "Last modified"); |
134 | 137 |
folderName.setText(create ? "" : folder.getName()); |
138 |
folderName.setReadOnly(folder.isContainer()); |
|
135 | 139 |
generalTable.setWidget(0, 1, folderName); |
136 | 140 |
|
137 | 141 |
if (create) |
... | ... | |
354 | 358 |
// } |
355 | 359 |
// }; |
356 | 360 |
// DeferredCommand.addCommand(ep); |
361 |
final String newName = folderName.getText(); |
|
362 |
if (!folder.isContainer() && !folder.getName().equals(newName)) { |
|
363 |
final String path = app.getApiPath() + app.getUsername() + folder.getParent().getUri() + "/" + newName; |
|
364 |
PutRequest newFolder = new PutRequest(path) { |
|
365 |
@Override |
|
366 |
public void onSuccess(Resource result) { |
|
367 |
Iterator<File> iter = folder.getFiles().iterator(); |
|
368 |
app.copyFiles(iter, folder.getParent().getUri() + "/" + newName, new Command() { |
|
369 |
@Override |
|
370 |
public void execute() { |
|
371 |
Iterator<Folder> iterf = folder.getSubfolders().iterator(); |
|
372 |
app.copySubfolders(iterf, folder.getParent().getUri() + "/" + newName, new Command() { |
|
373 |
@Override |
|
374 |
public void execute() { |
|
375 |
app.deleteFolder(folder); |
|
376 |
app.updateFolder(folder.getParent()); |
|
377 |
} |
|
378 |
}); |
|
379 |
} |
|
380 |
}); |
|
381 |
} |
|
382 |
|
|
383 |
@Override |
|
384 |
public void onError(Throwable t) { |
|
385 |
GWT.log("", t); |
|
386 |
if(t instanceof RestException){ |
|
387 |
app.displayError("Unable to update folder: " + ((RestException) t).getHttpStatusText()); |
|
388 |
} |
|
389 |
else |
|
390 |
app.displayError("System error modifying folder: " + t.getMessage()); |
|
391 |
} |
|
392 |
}; |
|
393 |
newFolder.setHeader("X-Auth-Token", app.getToken()); |
|
394 |
newFolder.setHeader("Content-Type", "application/folder"); |
|
395 |
newFolder.setHeader("Accept", "*/*"); |
|
396 |
newFolder.setHeader("Content-Length", "0"); |
|
397 |
Scheduler.get().scheduleDeferred(newFolder); |
|
398 |
} |
|
357 | 399 |
} |
358 | 400 |
|
359 | 401 |
public void selectTab(int _tab) { |
Also available in: Unified diff