Revision d94eb987 web_client/src/gr/grnet/pithos/web/client/commands/EmptyTrashCommand.java

b/web_client/src/gr/grnet/pithos/web/client/commands/EmptyTrashCommand.java
41 41
import gr.grnet.pithos.web.client.foldertree.Folder;
42 42
import gr.grnet.pithos.web.client.foldertree.Resource;
43 43
import gr.grnet.pithos.web.client.rest.DeleteRequest;
44
import gr.grnet.pithos.web.client.rest.GetRequest;
44 45
import gr.grnet.pithos.web.client.rest.RestException;
45 46

  
46 47
import com.google.gwt.core.client.GWT;
47 48
import com.google.gwt.core.client.Scheduler;
48 49
import com.google.gwt.http.client.Response;
50
import com.google.gwt.http.client.URL;
49 51
import com.google.gwt.user.client.Command;
50 52
import com.google.gwt.user.client.ui.PopupPanel;
51 53

  
......
97 99
	protected void deleteSubfolder(final Iterator<Folder> iter2, final Command callback) {
98 100
		if (iter2.hasNext()) {
99 101
			final Folder f = iter2.next();
100
			Iterator<File> iter3 = f.getFiles().iterator();
101
			deleteFile(iter3, new Command() {
102
			GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, app.getApiPath(), f.getOwner(), "/" + f.getContainer() + "?format=json&delimiter=/&prefix=" + URL.encodeQueryString(f.getPrefix()), f) {
102 103
				
103 104
				@Override
104
				public void execute() {
105
					Iterator<Folder> iter4 = f.getSubfolders().iterator();
106
					deleteSubfolder(iter4, new Command() {
107
						
105
				public void onSuccess(final Folder _f) {
106
					Iterator<File> iter3 = _f.getFiles().iterator();
107
					deleteFile(iter3, new Command() {
108
				
108 109
						@Override
109 110
						public void execute() {
110
							String path = f.getUri();
111
							DeleteRequest deleteF = new DeleteRequest(app.getApiPath(), f.getOwner(), path) {
112
								
113
								@Override
114
								public void onSuccess(@SuppressWarnings("unused") Resource result) {
115
									deleteSubfolder(iter2, callback);
116
								}
111
							Iterator<Folder> iter4 = _f.getSubfolders().iterator();
112
							deleteSubfolder(iter4, new Command() {
117 113
								
118 114
								@Override
119
								public void onError(Throwable t) {
120
									GWT.log("", t);
121
									if (t instanceof RestException) {
122
										app.displayError("Unable to delete file:" + ((RestException) t).getHttpStatusText());
123
									}
124
									else
125
										app.displayError("System error deleting file:" + t.getMessage());
126
								}
127

  
128
								@Override
129
								protected void onUnauthorized(Response response) {
130
									app.sessionExpired();
115
								public void execute() {
116
									String path = _f.getUri();
117
									DeleteRequest deleteF = new DeleteRequest(app.getApiPath(), _f.getOwner(), path) {
118
										
119
										@Override
120
										public void onSuccess(@SuppressWarnings("unused") Resource result) {
121
											deleteSubfolder(iter2, callback);
122
										}
123
										
124
										@Override
125
										public void onError(Throwable t) {
126
											GWT.log("", t);
127
											if (t instanceof RestException) {
128
												app.displayError("Unable to delete file:" + ((RestException) t).getHttpStatusText());
129
											}
130
											else
131
												app.displayError("System error deleting file:" + t.getMessage());
132
										}
133
		
134
										@Override
135
										protected void onUnauthorized(Response response) {
136
											app.sessionExpired();
137
										}
138
									};
139
									deleteF.setHeader("X-Auth-Token", app.getToken());
140
									Scheduler.get().scheduleDeferred(deleteF);
131 141
								}
132
							};
133
							deleteF.setHeader("X-Auth-Token", app.getToken());
134
							Scheduler.get().scheduleDeferred(deleteF);
142
							});
135 143
						}
136 144
					});
137 145
				}
138
			});
146

  
147
				@Override
148
				public void onError(Throwable t) {
149
	                GWT.log("", t);
150
	                if (t instanceof RestException) {
151
	                    app.displayError("Unable to get folder: " + ((RestException) t).getHttpStatusText());
152
	                }
153
	                else
154
	                	app.displayError("System error getting folder: " + t.getMessage());
155
				}
156

  
157
				@Override
158
				protected void onUnauthorized(Response response) {
159
					app.sessionExpired();
160
				}
161
			};
162
			getFolder.setHeader("X-Auth-Token", app.getToken());
163
			Scheduler.get().scheduleDeferred(getFolder);
139 164
		}
140 165
		else {
141 166
			if (callback != null)

Also available in: Unified diff