Revision d6be39da src/gr/grnet/pithos/web/client/FolderPropertiesDialog.java

b/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