Example usage for com.google.gwt.file.client FileList get

List of usage examples for com.google.gwt.file.client FileList get

Introduction

In this page you can find the example usage for com.google.gwt.file.client FileList get.

Prototype

public final File get(int i) throws ArrayIndexOutOfBoundsException 

Source Link

Usage

From source file:org.rest.client.ui.desktop.widget.RequestBodyWidget.java

License:Apache License

private void addNewFileRow(String key) {
    final HTMLPanel row = new HTMLPanel("");
    final ListPanel listPanel = new ListPanel();
    listPanel.setStyleName("selectedFilesList");

    row.setStyleName("formRow");
    TextBox keyBox = new TextBox();
    final HTML5FileUpload valueBox = new HTML5FileUpload();
    InlineLabel removeButton = new InlineLabel("x");

    fileInputs.add(valueBox);//from   www .j  a  va  2s. co  m
    keyBox.getElement().setAttribute("placeholder", "Field name");

    String value = null;
    if (key == null) {
        value = fileFieldName;
        if (fileFieldNumber > 0) {
            value += "" + fileFieldNumber;
        }
    } else {
        value = key;
    }
    keyBox.setValue(value);
    removeButton.addStyleName("removeButton");
    removeButton.setTitle("Remove");

    valueBox.setMultiple(true);
    valueBox.addChangeHandler(new ChangeHandler() {

        @Override
        public void onChange(ChangeEvent event) {
            int prevCnt = listPanel.getWidgetCount();
            allFilesCount -= prevCnt;
            listPanel.clear();
            FileList files = valueBox.getFiles();
            int cnt = files.size();
            allFilesCount += cnt;
            filesTab.setText("Files (" + allFilesCount + ")");
            for (int i = 0; i < cnt; i++) {
                File file = files.get(i);
                double sizeLong = file.getSize();
                String fileSize = Units.swithFileSize(sizeLong);

                String html = file.getName() + " ";
                html += "(" + fileSize + ")";
                ListItem li = new ListItem();
                li.setHTML(html);
                listPanel.add(li);
            }
        }
    });
    row.add(valueBox);
    row.add(keyBox);
    row.add(removeButton);
    row.add(listPanel);

    filesFormPanel.add(row);

    removeButton.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            int cnt = listPanel.getWidgetCount();
            allFilesCount -= cnt;
            filesTab.setText("Files (" + allFilesCount + ")");
            fileInputs.remove(valueBox);
            row.removeFromParent();
        }
    });
    fileFieldNumber++;
    keyBox.selectAll();
    keyBox.getElement().focus();
}