Revision 1a0db4f4 src/gr/grnet/pithos/web/client/FileUploadDialog.java
b/src/gr/grnet/pithos/web/client/FileUploadDialog.java | ||
---|---|---|
41 | 41 |
import com.google.gwt.event.dom.client.ClickEvent; |
42 | 42 |
import com.google.gwt.event.dom.client.ClickHandler; |
43 | 43 |
import com.google.gwt.event.dom.client.KeyCodes; |
44 |
import com.google.gwt.event.logical.shared.CloseEvent; |
|
45 |
import com.google.gwt.event.logical.shared.CloseHandler; |
|
44 | 46 |
import com.google.gwt.user.client.Command; |
45 | 47 |
import com.google.gwt.user.client.Event.NativePreviewEvent; |
46 | 48 |
import com.google.gwt.user.client.ui.Anchor; |
... | ... | |
54 | 56 |
import com.google.gwt.user.client.ui.Hidden; |
55 | 57 |
import com.google.gwt.user.client.ui.HorizontalPanel; |
56 | 58 |
import com.google.gwt.user.client.ui.Label; |
59 |
import com.google.gwt.user.client.ui.PopupPanel; |
|
57 | 60 |
import com.google.gwt.user.client.ui.VerticalPanel; |
58 | 61 |
|
59 | 62 |
/** |
... | ... | |
83 | 86 |
/** |
84 | 87 |
* The widget's constructor. |
85 | 88 |
*/ |
86 |
public FileUploadDialog(Pithos _app, Folder _folder) {
|
|
89 |
public FileUploadDialog(Pithos _app) { |
|
87 | 90 |
app = _app; |
88 |
folder = _folder; |
|
89 |
foldernameLabel.setText(folder.getName()); |
|
90 | 91 |
Anchor close = new Anchor(); |
91 | 92 |
close.addStyleName("close"); |
92 | 93 |
close.addClickHandler(new ClickHandler() { |
93 | 94 |
|
94 | 95 |
@Override |
95 | 96 |
public void onClick(ClickEvent event) { |
96 |
hide();
|
|
97 |
close();
|
|
97 | 98 |
} |
98 | 99 |
}); |
99 | 100 |
// Set the dialog's caption. |
... | ... | |
101 | 102 |
setAnimationEnabled(true); |
102 | 103 |
setGlassEnabled(true); |
103 | 104 |
setStyleName("pithos-DialogBox"); |
105 |
setVisible(false); |
|
106 |
|
|
104 | 107 |
// Since we're going to add a FileUpload widget, we'll need to set the |
105 | 108 |
// form to use the POST method, and multipart MIME encoding. |
106 | 109 |
form.setEncoding(FormPanel.ENCODING_MULTIPART); |
... | ... | |
144 | 147 |
panel.add(inner); |
145 | 148 |
panel.setCellHorizontalAlignment(inner, HasHorizontalAlignment.ALIGN_CENTER); |
146 | 149 |
|
147 |
|
|
148 |
Scheduler.get().scheduleDeferred(new Command() { |
|
149 |
|
|
150 |
@Override |
|
151 |
public void execute() { |
|
152 |
String path = app.getApiPath() + folder.getOwner() + folder.getUri(); |
|
153 |
setupUpload(FileUploadDialog.this, path, app.getToken()); |
|
154 |
} |
|
155 |
}); |
|
156 | 150 |
setWidget(form); |
157 | 151 |
} |
158 | 152 |
|
... | ... | |
190 | 184 |
Init: function(up, info) { |
191 | 185 |
$wnd.console.log("Init fired"); |
192 | 186 |
up.settings.file_data_name = "X-Object-Data"; |
193 |
dlg.@gr.grnet.pithos.web.client.FileUploadDialog::center()(); |
|
194 |
// up.refresh(); |
|
195 |
return true; |
|
196 | 187 |
} |
197 | 188 |
|
198 | 189 |
}, |
199 | 190 |
|
200 | 191 |
init: { |
201 |
PostInit: function(up) {
|
|
202 |
$wnd.console.log("PostInit fired");
|
|
203 |
//dlg.@gr.grnet.pithos.web.client.FileUploadDialog::center()();
|
|
192 |
FilesAdded: function(up, files) {
|
|
193 |
for (var j=0; j<files.length; j++)
|
|
194 |
files[j].url = up.path + "/" + files[j].name + "?X-Auth-Token=" + token;
|
|
204 | 195 |
}, |
205 | 196 |
|
206 | 197 |
BeforeUpload: function(up, file) { |
207 |
$wnd.console.log('About to upload ' + file.name);
|
|
208 |
up.settings.url = path + "/" + file.name + "?X-Auth-Token=" + token;
|
|
198 |
$wnd.console.log('About to upload ' + file.url);
|
|
199 |
up.settings.url = file.url;
|
|
209 | 200 |
}, |
210 | 201 |
|
211 | 202 |
FileUploaded: function(up, file, response) { |
... | ... | |
215 | 206 |
|
216 | 207 |
UploadComplete: function(up, files) { |
217 | 208 |
$wnd.console.log('All files finished'); |
209 |
dlg.@gr.grnet.pithos.web.client.FileUploadDialog::hideUploadIndicator()(); |
|
218 | 210 |
dlg.@gr.grnet.pithos.web.client.FileUploadDialog::refreshFolder()(); |
219 | 211 |
} |
220 | 212 |
} |
221 | 213 |
}); |
214 |
uploader = $wnd.$("#uploader").pluploadQueue(); |
|
222 | 215 |
} |
223 | 216 |
else { |
224 |
var previousSettings = uploader.settings; |
|
225 |
var previousFiles = uploader.files; |
|
226 |
$wnd.$("#uploader").pluploadQueue(previousSettings); |
|
227 |
uploader = $wnd.$("#uploader").pluploadQueue(); |
|
228 |
uploader.trigger('FilesAdded', previousFiles); |
|
229 |
for (var i=0; i<previousFiles.length; i++) { |
|
230 |
var f = previousFiles[i]; |
|
231 |
if (f.status == $wnd.plupload.UPLOADING) { |
|
232 |
uploader.trigger('UploadProgress', f); |
|
217 |
var removeAll = true; |
|
218 |
var files = uploader.files; |
|
219 |
$wnd.console.log('About to check ' + files.length + ' files'); |
|
220 |
for (var i=0; i<files.length; i++) { |
|
221 |
var f = files[i]; |
|
222 |
if (f.status != $wnd.plupload.DONE && f.status != $wnd.plupload.FAILED) { |
|
223 |
removeAll = false; |
|
233 | 224 |
break; |
234 | 225 |
} |
235 | 226 |
} |
227 |
if (removeAll) { |
|
228 |
$wnd.console.log('About to remove ' + files.length + ' files'); |
|
229 |
while (files.length > 0) { |
|
230 |
uploader.removeFile(files[0]); |
|
231 |
} |
|
232 |
$wnd.console.log(uploader); |
|
233 |
} |
|
236 | 234 |
} |
235 |
uploader.path = path; |
|
236 |
}-*/; |
|
237 |
|
|
238 |
native boolean isUploading()/*-{ |
|
239 |
var uploader = $wnd.$("#uploader").pluploadQueue(); |
|
240 |
var files = uploader.files; |
|
241 |
for (var i=0; i<files.length; i++) { |
|
242 |
var f = files[i]; |
|
243 |
if (f.status == $wnd.plupload.UPLOADING) { |
|
244 |
return true; |
|
245 |
} |
|
246 |
} |
|
247 |
return false; |
|
237 | 248 |
}-*/; |
238 | 249 |
|
239 | 250 |
@Override |
... | ... | |
246 | 257 |
// escape is pressed. |
247 | 258 |
switch (evt.getKeyCode()) { |
248 | 259 |
case KeyCodes.KEY_ESCAPE: |
249 |
hide();
|
|
260 |
close();
|
|
250 | 261 |
break; |
251 | 262 |
} |
252 | 263 |
} |
264 |
|
|
265 |
public void setFolder(Folder folder) { |
|
266 |
this.folder = folder; |
|
267 |
foldernameLabel.setText(folder.getName()); |
|
268 |
} |
|
269 |
|
|
270 |
@Override |
|
271 |
public void center() { |
|
272 |
app.hideUploadIndicator(); |
|
273 |
setVisible(true); |
|
274 |
setModal(true); |
|
275 |
super.center(); |
|
276 |
String path = app.getApiPath() + folder.getOwner() + folder.getUri(); |
|
277 |
setupUpload(this, path, app.getToken()); |
|
278 |
super.center(); |
|
279 |
} |
|
280 |
|
|
281 |
private void hideUploadIndicator() { |
|
282 |
app.hideUploadIndicator(); |
|
283 |
} |
|
284 |
|
|
285 |
void close() { |
|
286 |
setVisible(false); |
|
287 |
setModal(false); |
|
288 |
if (isUploading()) |
|
289 |
app.showUploadIndicator(); |
|
290 |
} |
|
253 | 291 |
} |
Also available in: Unified diff