import com.google.gwt.user.client.ui.Hidden; //导入方法依赖的package包/类
public void onStatusChanged(IUploader uploader) {
Uploader u = (Uploader) uploader;
if (u.getStatus() == Status.CHANGED) {
u.getFileInput().setVisible(false);
u.getStatusWidget().setVisible(true);
} else if (u.getStatus() == Status.SUBMITING) {
// For security reasons, most browsers don't submit files if fileInput is hidden or has a size of 0,
// so, before sending the form, it is necessary to show the fileInput, we put it out of the viewable
// area.
Widget w = u.getFileInput().getWidget();
DOM.setStyleAttribute(w.getElement(), "position", "absolute");
DOM.setStyleAttribute(w.getElement(), "left", "-4000px");
u.getFileInput().setVisible(true);
// Add the hidden input fields to the form being to submit
for (Widget i : formWidgets) {
if (! (i instanceof IFileInput)) {
if (i instanceof Hidden) {
Hidden h = (Hidden)i;
if (h.getValue().startsWith(fileInputPrefix)) {
h.setValue(u.getInputName());
}
}
u.add(i, 0);
}
}
} else if (u.getStatus() == Status.REPEATED) {
u.getFileInput().setVisible(true);
u.getStatusWidget().setVisible(false);
} else if (u.getStatus() == Status.INPROGRESS) {
u.getFileInput().setVisible(false);
} else {
// We don't need any more all the stuff related with the FormPanel when the upload has finished
if (u.isFinished() && u.getForm().isAttached()) {
u.getForm().removeFromParent();
}
u.getStatusWidget().setVisible(true);
newUploaderInstance();
}
}