I have a problem with an upload button which sends the selected file to a servlet and takes some action on servlet response.
//all ESExtXXX or ExtXXX from following code are wrapped javascript with jsinterop
ESExtCreateParams uploadPanelParams = new ESExtCreateParams();
uploadPanelParams.setWidth(60);
uploadPanelParams.setHeight(24);
uploadPanelParams.setLayout("fit");
ExtFormPanel panelForm = (ExtFormPanel) ESExt.create("Ext.form.Panel", uploadPanelParams);
ESExtCreateParams loadButtonParams = new ESExtCreateParams();
loadButtonParams.setButtonText("LoadJsonFile");
loadButtonParams.setAutoHeight(true);
// loadButtonParams.setAutoWidth(true);
loadButtonParams.setHideLabel(true);
loadButtonParams.setButtonOnly(true);
loadButtonParams.setFlex(1);
ExtFormFile loadButton = (ExtFormFile) ESExt.create("Ext.form.field.File", loadButtonParams);
loadButton.addListener("change", new ESStandardFunction() {
@Override
public void exec() {
ExtFormBasic basicForm = panelForm.getForm();
JsOptions options = new JsOptions();
options.setUrl("urlToMyServlet");
options.setMethod("POST");
options.setWaitMsg("Please wait...");
options.setFileUpload(true);
options.setSuccess(new JsSubmitFunction() {
@Override
public void exec(ExtFormBasic basic, ExtFormSubmit action) {
JavaScriptObject result = action.getResult();
useJsonData(JsonUtils.stringify(result));
loadButton.reset();
}
});
options.setFailure(new JsSubmitFunction() {
@Override
public void exec(ExtFormBasic basic, ExtFormSubmit action) {
loadButton.reset();
}
});
basicForm.submit(options);
}
});
panelForm.add(loadButton);
This panelForm is added to a ext toolbar which is used in a GWT app.
I do have in the result a json containing "success" : true or false.
This code works with gwt2.8.0-beta1 but not with gwt2.8.0-rc1 or rc2.
AlinT.