45 |
45 |
import gr.grnet.pithos.web.client.foldertree.Folder;
|
46 |
46 |
import gr.grnet.pithos.web.client.foldertree.Resource;
|
47 |
47 |
import gr.grnet.pithos.web.client.rest.HeadRequest;
|
|
48 |
import gr.grnet.pithos.web.client.rest.PutRequest;
|
48 |
49 |
import gr.grnet.pithos.web.client.rest.RestException;
|
49 |
50 |
|
50 |
51 |
import java.util.List;
|
... | ... | |
91 |
92 |
containerPanel.hide();
|
92 |
93 |
|
93 |
94 |
if (resource instanceof Folder) {
|
94 |
|
Folder folder = (Folder) resource;
|
|
95 |
final Folder folder = (Folder) resource;
|
95 |
96 |
switch (tabToShow) {
|
96 |
97 |
case PROPERTIES:
|
97 |
98 |
FolderPropertiesDialog dlg = new FolderPropertiesDialog(app, false, folder);
|
98 |
99 |
dlg.center();
|
99 |
100 |
break;
|
100 |
101 |
case PERMISSIONS:
|
101 |
|
FolderPermissionsDialog dlg1 = new FolderPermissionsDialog(app, folder);
|
102 |
|
dlg1.center();
|
|
102 |
final FolderPermissionsDialog dlg1 = new FolderPermissionsDialog(app, folder);
|
|
103 |
scheduleFolderHeadCommand(folder, dlg1);
|
103 |
104 |
break;
|
104 |
105 |
default:
|
105 |
106 |
break;
|
... | ... | |
113 |
114 |
dlg.center();
|
114 |
115 |
}
|
115 |
116 |
else {
|
|
117 |
File f = files.get(0);
|
|
118 |
PopupPanel dlg = null;
|
116 |
119 |
switch (tabToShow) {
|
117 |
120 |
case PROPERTIES:
|
118 |
|
File f = files.get(0);
|
119 |
|
final FilePropertiesDialog dlg = new FilePropertiesDialog(app, f);
|
120 |
|
HeadRequest<File> headFile = new HeadRequest<File>(File.class, app.getApiPath(), f.getOwner(), f.getUri(), f) {
|
121 |
|
|
122 |
|
@Override
|
123 |
|
public void onSuccess(File _result) {
|
124 |
|
dlg.center();
|
125 |
|
}
|
126 |
|
|
127 |
|
@Override
|
128 |
|
public void onError(Throwable t) {
|
129 |
|
GWT.log("Error heading file", t);
|
130 |
|
app.setError(t);
|
131 |
|
if (t instanceof RestException)
|
132 |
|
app.displayError("Error heading file: " + ((RestException) t).getHttpStatusText());
|
133 |
|
else
|
134 |
|
app.displayError("System error heading folder: " + t.getMessage());
|
135 |
|
}
|
136 |
|
|
137 |
|
@Override
|
138 |
|
protected void onUnauthorized(Response response) {
|
139 |
|
app.sessionExpired();
|
140 |
|
}
|
141 |
|
};
|
142 |
|
headFile.setHeader("X-Auth-Token", app.getToken());
|
143 |
|
Scheduler.get().scheduleDeferred(headFile);
|
|
121 |
dlg = new FilePropertiesDialog(app, f);
|
|
122 |
scheduleFileHeadCommand(f, dlg);
|
144 |
123 |
break;
|
145 |
124 |
case PERMISSIONS:
|
146 |
|
FilePermissionsDialog dlg1 = new FilePermissionsDialog(app, files.get(0));
|
147 |
|
dlg1.center();
|
|
125 |
dlg = new FilePermissionsDialog(app, f);
|
|
126 |
scheduleFileHeadCommand(f, dlg);
|
148 |
127 |
break;
|
149 |
128 |
case VERSIONS:
|
150 |
129 |
FileVersionsDialog dlg2 = new FileVersionsDialog(app, files.get(0));
|
... | ... | |
156 |
135 |
}
|
157 |
136 |
}
|
158 |
137 |
}
|
|
138 |
|
|
139 |
private void scheduleFileHeadCommand(File f, final PopupPanel dlg) {
|
|
140 |
HeadRequest<File> headFile = new HeadRequest<File>(File.class, app.getApiPath(), f.getOwner(), f.getUri(), f) {
|
|
141 |
|
|
142 |
@Override
|
|
143 |
public void onSuccess(File _result) {
|
|
144 |
dlg.center();
|
|
145 |
}
|
|
146 |
|
|
147 |
@Override
|
|
148 |
public void onError(Throwable t) {
|
|
149 |
GWT.log("Error heading file", t);
|
|
150 |
app.setError(t);
|
|
151 |
if (t instanceof RestException)
|
|
152 |
app.displayError("Error heading file: " + ((RestException) t).getHttpStatusText());
|
|
153 |
else
|
|
154 |
app.displayError("System error heading file: " + t.getMessage());
|
|
155 |
}
|
|
156 |
|
|
157 |
@Override
|
|
158 |
protected void onUnauthorized(Response response) {
|
|
159 |
app.sessionExpired();
|
|
160 |
}
|
|
161 |
};
|
|
162 |
headFile.setHeader("X-Auth-Token", app.getToken());
|
|
163 |
Scheduler.get().scheduleDeferred(headFile);
|
|
164 |
}
|
|
165 |
|
|
166 |
void scheduleFolderHeadCommand(final Folder folder, final FolderPermissionsDialog dlg) {
|
|
167 |
HeadRequest<Folder> headFolder = new HeadRequest<Folder>(Folder.class, app.getApiPath(), folder.getOwner(), folder.getUri(), folder) {
|
|
168 |
|
|
169 |
@Override
|
|
170 |
public void onSuccess(Folder _result) {
|
|
171 |
dlg.center();
|
|
172 |
}
|
|
173 |
|
|
174 |
@Override
|
|
175 |
public void onError(Throwable t) {
|
|
176 |
if (t instanceof RestException) {
|
|
177 |
if (((RestException) t).getHttpStatusCode() == Response.SC_NOT_FOUND) {
|
|
178 |
final String path = folder.getUri();
|
|
179 |
PutRequest newFolder = new PutRequest(app.getApiPath(), folder.getOwner(), path) {
|
|
180 |
@Override
|
|
181 |
public void onSuccess(Resource _result) {
|
|
182 |
scheduleFolderHeadCommand(folder, dlg);
|
|
183 |
}
|
|
184 |
|
|
185 |
@Override
|
|
186 |
public void onError(Throwable _t) {
|
|
187 |
GWT.log("", _t);
|
|
188 |
app.setError(_t);
|
|
189 |
if(_t instanceof RestException){
|
|
190 |
app.displayError("Unable to create folder: " + ((RestException) _t).getHttpStatusText());
|
|
191 |
}
|
|
192 |
else
|
|
193 |
app.displayError("System error creating folder: " + _t.getMessage());
|
|
194 |
}
|
|
195 |
|
|
196 |
@Override
|
|
197 |
protected void onUnauthorized(Response response) {
|
|
198 |
app.sessionExpired();
|
|
199 |
}
|
|
200 |
};
|
|
201 |
newFolder.setHeader("X-Auth-Token", app.getToken());
|
|
202 |
newFolder.setHeader("Content-Type", "application/folder");
|
|
203 |
newFolder.setHeader("Accept", "*/*");
|
|
204 |
newFolder.setHeader("Content-Length", "0");
|
|
205 |
Scheduler.get().scheduleDeferred(newFolder);
|
|
206 |
}
|
|
207 |
else
|
|
208 |
app.displayError("Error heading folder: " + ((RestException) t).getHttpStatusText());
|
|
209 |
}
|
|
210 |
else
|
|
211 |
app.displayError("System error heading folder: " + t.getMessage());
|
|
212 |
|
|
213 |
GWT.log("Error heading folder", t);
|
|
214 |
app.setError(t);
|
|
215 |
}
|
|
216 |
|
|
217 |
@Override
|
|
218 |
protected void onUnauthorized(Response response) {
|
|
219 |
app.sessionExpired();
|
|
220 |
}
|
|
221 |
};
|
|
222 |
headFolder.setHeader("X-Auth-Token", app.getToken());
|
|
223 |
Scheduler.get().scheduleDeferred(headFolder);
|
|
224 |
}
|
159 |
225 |
}
|