Example usage for com.google.gwt.gears.client.desktop OpenFilesHandler OpenFilesHandler

List of usage examples for com.google.gwt.gears.client.desktop OpenFilesHandler OpenFilesHandler

Introduction

In this page you can find the example usage for com.google.gwt.gears.client.desktop OpenFilesHandler OpenFilesHandler.

Prototype

OpenFilesHandler

Source Link

Usage

From source file:com.google.gwt.gears.sample.uploaddemo.client.UploadDemo.java

License:Apache License

/**
 * This is the entry point method./*  w  ww  . j a v a  2 s  .c  o  m*/
 */
public void onModuleLoad() {
    root = RootPanel.get();

    final Button browse = new Button("Browse");

    final Button upload = new Button("Upload");
    upload.setEnabled(false);

    final TextBox selected = new TextBox();
    selected.setEnabled(false);

    final SimplePanel progressInner = new SimplePanel();
    progressInner.addStyleName("progressInner");

    final SimplePanel progressGauge = new SimplePanel();
    progressGauge.addStyleName("progressGauge");
    progressGauge.add(progressInner);

    final HTML result = new HTML();

    browse.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            Desktop desktop = factory.createDesktop();
            desktop.openFiles(new OpenFilesHandler() {

                public void onOpenFiles(OpenFilesEvent event) {
                    File[] files = event.getFiles();
                    selected.setText(files[0].getName());
                    selectedFile = files[0].getBlob();
                    upload.setEnabled(true);
                }
            }, true);
        }
    });

    upload.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            HttpRequest request = factory.createHttpRequest();
            request.open("POST", GWT.getModuleBaseURL() + "upload");
            request.setRequestHeader("X-Filename", selected.getText());

            request.setCallback(new RequestCallback() {
                public void onResponseReceived(HttpRequest request) {
                    String msg = request.getStatus() + " " + request.getResponseText();
                    if (request.getStatus() != 200) {
                        result.setHTML("<p style=\"color:red\">" + msg + "</p>");
                    } else {
                        result.setHTML("<p style=\"color:green\">" + msg + "</p>");
                    }
                }
            });

            request.getUpload().setProgressHandler(new ProgressHandler() {
                public void onProgress(ProgressEvent event) {
                    double pcnt = ((double) event.getLoaded() / event.getTotal());
                    progressInner.setWidth((int) Math.floor(pcnt * 100) + "%");
                }
            });
            request.send(selectedFile);
        }
    });

    HorizontalPanel inputPanel = new HorizontalPanel();
    inputPanel.add(selected);
    inputPanel.add(browse);
    inputPanel.add(upload);

    root.add(inputPanel);
    root.add(new HTML("Progress:"));
    root.add(progressGauge);
    root.add(result);
}

From source file:org.gss_project.gss.web.client.FileUploadGearsDialog.java

License:Open Source License

/**
 * The widget's constructor.//from ww  w. ja  v a 2  s  .  c  o m
 */
public FileUploadGearsDialog() {
    // Set the dialog's caption.
    setText("File upload");
    setAnimationEnabled(true);
    // Create a panel to hold all of the dialog widgets.
    VerticalPanel panel = new VerticalPanel();
    final HTML info = new HTML("You may select one or more files to upload.");
    info.addStyleName("gss-uploadNote");
    panel.add(info);
    // Add an informative label with the folder name.
    Object selection = GSS.get().getTreeView().getSelection();
    folder = ((RestResourceWrapper) selection).getResource();

    browse = new Button("Browse...");

    HorizontalPanel fileUploadPanel = new HorizontalPanel();
    fileUploadPanel.add(browse);

    generalTable = new FlexTable();
    generalTable.setText(0, 0, "Folder");
    generalTable.setText(1, 0, "File");
    generalTable.setText(0, 1, folder.getName());
    generalTable.setWidget(1, 1, fileUploadPanel);
    generalTable.getCellFormatter().setStyleName(0, 0, "props-labels");
    generalTable.getCellFormatter().setStyleName(1, 0, "props-labels");
    generalTable.getCellFormatter().setStyleName(0, 1, "props-values");
    generalTable.getCellFormatter().setStyleName(1, 1, "props-values");
    generalTable.setCellSpacing(4);

    panel.add(generalTable);

    // Create a panel to hold the buttons.
    HorizontalPanel buttons = new HorizontalPanel();

    submit = new Button("Upload");
    submit.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            prepareAndSubmit();
        }
    });
    submit.setEnabled(false);
    buttons.add(submit);
    buttons.setCellHorizontalAlignment(submit, HasHorizontalAlignment.ALIGN_CENTER);
    // Create the 'Cancel' button, along with a listener that hides the
    // dialog when the button is clicked.
    Button cancel = new Button("Cancel", new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            canContinue = false;
            cancelUpload();
            GSS.get().showFileList(true);
        }
    });
    buttons.add(cancel);
    buttons.setCellHorizontalAlignment(cancel, HasHorizontalAlignment.ALIGN_CENTER);
    buttons.setSpacing(8);
    buttons.addStyleName("gss-DialogBox");

    browse.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            Desktop desktop = factory.createDesktop();
            desktop.openFiles(new OpenFilesHandler() {

                @Override
                public void onOpenFiles(OpenFilesEvent ofevent) {
                    fileObjects = ofevent.getFiles();
                    selectedFiles.addAll(Arrays.asList(fileObjects));
                    for (int i = 0; i < selectedFiles.size(); i++) {
                        generalTable.setText(i + 1, 0, "File");
                        generalTable.setText(i + 1, 1, selectedFiles.get(i).getName());
                        ProgressBar progress = new ProgressBar(20, 0);
                        generalTable.setWidget(i + 1, 2, progress);
                        progressBars.add(progress);
                        generalTable.getCellFormatter().setStyleName(i + 1, 0, "props-labels");
                        generalTable.getCellFormatter().setStyleName(i + 1, 1, "props-values");
                    }
                    submit.setEnabled(true);
                }
            });
        }
    });

    panel.add(buttons);
    panel.setCellHorizontalAlignment(buttons, HasHorizontalAlignment.ALIGN_CENTER);
    panel.addStyleName("gss-DialogBox");
    addStyleName("gss-DialogBox");
    setWidget(panel);
}