Никогда не пытался использовать предоставленную вами ссылку, но это то, что я сделал, чтобы использовать виджет GWT FileUpload:
Я создал виджет загрузки файлов, используя uibinder:
<g:FormPanel ui:field="docForm">
<g:FlowPanel ui:field="inputPane">
/*other displayed info*/
<g:FileUpload ui:field="DocPath"/>
/*other displayed info*/
</g:FlowPanel>
</g:FormPanel>
(Согласно API GWT виджеты FileUpload могут использоваться только из FormPanel)
Убедитесь, что вы установили их в FormPanel, иначе у вас, вероятно, будут проблемы:
yourFormPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
yourFormPanel.setMethod(FormPanel.METHOD_POST);
Этот виджетпереносится на страницу моего контейнера, а затем добавляется на панель дисплея:
private FileUploadWidget createNewUploader(){
FileUploadWidget uploader = new FileUploadWidget(/*my constructor params*/);
uploader.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
DocPanel.add(createNewUploader());
}
});
return uploader;
}
Мое событие OnChange таково, что у меня появляется новый пустой загрузчик, когда я использую текущий.
и когда я буду готов представить:
private void processUpload(FileUploadWidget upload, int id) {
upload.setId(id);
//Don't bother to submit an empty one.
if (upload.IsFileSelected())
upload.Submit();
}