Example usage for com.google.gwt.http.client MyRequestBuilder send

List of usage examples for com.google.gwt.http.client MyRequestBuilder send

Introduction

In this page you can find the example usage for com.google.gwt.http.client MyRequestBuilder send.

Prototype

public Request send(FormData formData, RequestCallback callback) throws RequestException 

Source Link

Usage

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();/*  w  w  w  .ja  v a  2 s  . c  om*/

    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());
            }
        }
    });
}