List of usage examples for com.google.gwt.http.client MyRequestBuilder setProgressEventListener
public void setProgressEventListener(ProgressEventListener progressEventListener)
From source file:si.test.client.MyClient.java
License:Open Source License
public void onModuleLoad() { RootPanel rootPanel = RootPanel.get(); AppResources resources = GWT.create(AppResources.class); resources.css().ensureInjected();/*from w w w . jav a 2s . c o m*/ MyGwtFileUpload fileUpload = new MyGwtFileUpload(); fileUpload.getElement().getStyle().setDisplay(Display.NONE); rootPanel.add(fileUpload); Button browser = new Button("Browse..."); rootPanel.add(browser); browser.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { label.setText(fixedText); fileUpload.clear(); progressBar.setValue(0); fileUpload.click(); } }); rootPanel.add(label); fileUpload.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { if (fileUpload.getBlob() != null) { label.setText(fixedText + fileUpload.getBlob().getName()); } else { label.setText(fixedText); } } }); clickMeButton = new Button(); rootPanel.add(clickMeButton); clickMeButton.setText("Upload"); clickMeButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { // TestService.Util.getInstance().test(new AsyncCallback<String>() // { // @Override // public void onSuccess(String result) { // Window.alert(result); // } // // @Override // public void onFailure(Throwable caught) { // Window.alert(caught.getMessage()); // } // }); // MyRequestBuilder builder = new MyRequestBuilder(RequestBuilder.POST, "UploadServlet"); MyRequestBuilder builder = new MyRequestBuilder(RequestBuilder.POST, "UploadFormDataServlet"); builder.setProgressEventListener(new ProgressEventListener() { @Override public void handleEvent(ProgressEvent progressEvent) { // GWT.debugger(); if (progressEvent.getLengthComputable()) { progressBar.setMax(progressEvent.getTotal()); progressBar.setValue(progressEvent.getLoaded()); GWT.log("Total: " + progressEvent.getTotal() + " Loaded: " + progressEvent.getLoaded()); } } }); // builder.setHeader("Content-Type", "multipart/form-data; charset=utf-8"); try { Blob blob = fileUpload.getBlob(); if (blob == null) { Window.alert("Select file first"); return; } RequestCallback requestCallback = new RequestCallback() { @Override public void onResponseReceived(Request request, Response response) { Window.alert(response.getText()); } @Override public void onError(Request request, Throwable exception) { Window.alert(exception.getMessage()); } }; // builder.send(blob, requestCallback); FormData formData = new FormData(); // formData.append("file-name", blob.getName()); //e pri spodnjem dodamo getName, potem moramo mna serverju prebrati filename from parf - glej TestFormDataUpload formData.append("file", blob, blob.getName()); builder.send(formData, requestCallback); } catch (RequestException e) { Window.alert(e.getMessage()); } } }); HTMLPanel div = new HTMLPanel("<progress id='progressBar' max='100' value='0'></progress>"); rootPanel.add(div); progressBar = DOM.getElementById("progressBar").cast(); HTMLPanel hr = new HTMLPanel("<hr style='width='100%';'>"); rootPanel.add(hr); MyGxtFileUpload gxtFileUpload = new MyGxtFileUpload(); rootPanel.add(gxtFileUpload); com.sencha.gxt.widget.core.client.ProgressBar gxtProgressBar = new com.sencha.gxt.widget.core.client.ProgressBar(); rootPanel.add(gxtProgressBar); TextButton gxtButton = new TextButton("Upload by GXT"); rootPanel.add(gxtButton); gxtFileUpload.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { gxtProgressBar.reset(); } }); gxtButton.addSelectHandler(new SelectHandler() { @Override public void onSelect(SelectEvent event) { MyRequestBuilder builder = new MyRequestBuilder(RequestBuilder.POST, "UploadFormDataServlet"); builder.setProgressEventListener(new ProgressEventListener() { @Override public void handleEvent(ProgressEvent progressEvent) { // GWT.debugger(); if (progressEvent.getLengthComputable()) { gxtProgressBar.updateProgress(progressEvent.getLoaded() / progressEvent.getTotal(), "{0}%"); GWT.log("Total: " + progressEvent.getTotal() + " Loaded: " + progressEvent.getLoaded() + " " + progressEvent.getLoaded() / progressEvent.getTotal() * 100); } } }); // builder.setHeader("Content-Type", "multipart/form-data; charset=utf-8"); try { Blob blob = gxtFileUpload.getBlob(); if (blob == null) { Window.alert("Select file first"); return; } RequestCallback requestCallback = new RequestCallback() { @Override public void onResponseReceived(Request request, Response response) { Window.alert(response.getText()); } @Override public void onError(Request request, Throwable exception) { Window.alert(exception.getMessage()); } }; // builder.send(blob, requestCallback); FormData formData = new FormData(); // formData.append("file-name", blob.getName()); //e pri spodnjem dodamo getName, potem moramo mna serverju prebrati filename from parf - glej TestFormDataUpload formData.append("file", blob, blob.getName()); builder.send(formData, requestCallback); } catch (RequestException e) { Window.alert(e.getMessage()); } } }); }