Example usage for com.google.gwt.user.client.ui FileUpload addChangeHandler

List of usage examples for com.google.gwt.user.client.ui FileUpload addChangeHandler

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui FileUpload addChangeHandler.

Prototype

public HandlerRegistration addChangeHandler(ChangeHandler handler) 

Source Link

Usage

From source file:com.qualogy.qafe.gwt.client.ui.renderer.FileUploadRenderer.java

License:Apache License

public UIObject render(ComponentGVO component, String uuid, String parent, String context) {
    HorizontalPanel uiObject = null;/*from  w  w w  .  j  a v  a2 s .  c  o  m*/
    final String finalParent = parent;
    if (component != null) {
        if (component instanceof FileUploadGVO) {
            if (component.getMenu() != null) {
                final ComponentGVO finalComponentGVO = component;
                final String finalUuid = uuid;
                uiObject = new HorizontalPanel() {
                    @Override
                    public void onBrowserEvent(Event event) {
                        if (event.getTypeInt() == Event.ONCONTEXTMENU) {
                            DOM.eventPreventDefault(event);
                            applyContextMenu(event, finalComponentGVO, finalUuid, finalParent);
                        }
                        super.onBrowserEvent(event);
                    }

                    @Override
                    protected void setElement(Element elem) {
                        super.setElement(elem);
                        sinkEvents(Event.ONCONTEXTMENU);
                    }
                };
            } else {
                uiObject = new HorizontalPanel();
            }
            final FormPanel formPanel = new FormPanel();
            formPanel.setAction(GWT.getModuleBaseURL() + "/rpc.upload");
            formPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
            formPanel.setMethod(FormPanel.METHOD_POST);

            final Button uploadButtonComponent = new Button("Upload");
            uploadButtonComponent.addClickHandler(new ClickHandler() {
                public void onClick(ClickEvent event) {
                    formPanel.submit();
                }
            });

            final FileUpload fileUploadComponent = new FileUpload();
            fileUploadComponent.setName("uploadElement");
            fileUploadComponent.addChangeHandler(new ChangeHandler() {
                public void onChange(ChangeEvent event) {
                    String filename = fileUploadComponent.getFilename();
                    boolean enabled = (filename != null) && (filename.length() > 0);
                    uploadButtonComponent.setEnabled(enabled);
                }
            });

            Hidden appId = new Hidden();
            final String appID = ClientApplicationContext.getInstance().getWindowSession();
            appId.setName("APPUUID=" + appID);

            Hidden windowId = new Hidden();
            windowId.setName("WINDOWID=" + parent);

            Grid gridPanel = new Grid(2, 4);
            gridPanel.setWidget(0, 0, fileUploadComponent);
            gridPanel.setWidget(0, 1, uploadButtonComponent);
            gridPanel.setWidget(0, 2, appId);
            gridPanel.setWidget(0, 3, windowId);
            formPanel.add(gridPanel);

            RendererHelper.fillIn(component, formPanel, uuid, parent, context);
            formPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {

                public void onSubmitComplete(SubmitCompleteEvent event) {
                    String uuId = event.getResults();
                    boolean success = false;
                    if (uuId != null && uuId.indexOf("=") > 0) {
                        uuId = uuId.substring(uuId.indexOf("=") + 1);
                        success = true;
                    }
                    if (formPanel instanceof HasWidgets) {
                        HasWidgets hasWidgets = (HasWidgets) formPanel;
                        Iterator<Widget> itr = hasWidgets.iterator();
                        while (itr.hasNext()) {
                            Widget widget = itr.next();
                            if (widget instanceof Grid) {
                                Grid gridPanel = (Grid) widget;
                                final FileUpload fileUpload = (FileUpload) gridPanel.getWidget(0, 0);
                                final Button uploadButton = (Button) gridPanel.getWidget(0, 1);
                                if (success) {
                                    fileUpload.setVisible(false);
                                    uploadButton.setVisible(false);
                                    String fileName = event.getResults().substring(0,
                                            event.getResults().indexOf("#"));
                                    final String viewUrl = GWT.getModuleBaseURL() + "/rpc.view?APPUUID=" + appID
                                            + "&WINDOWID=" + finalParent + "&VIEW=" + uuId;
                                    final Label fileNameLabel = new Label(fileName);
                                    DOM.setStyleAttribute(fileNameLabel.getElement(), "textDecoration",
                                            "underline");
                                    DOM.setStyleAttribute(fileNameLabel.getElement(), "cursor", "hand");
                                    fileNameLabel.addClickHandler(new ClickHandler() {
                                        public void onClick(ClickEvent event) {
                                            Window.open(viewUrl, "UploadedFile", null);
                                        }
                                    });
                                    fileNameLabel.setVisible(true);

                                    final Label clearLabel = new Label("Clear");
                                    clearLabel.setVisible(true);
                                    final String finalUuId = uuId;

                                    DOM.setStyleAttribute(clearLabel.getElement(), "textDecoration",
                                            "underline");
                                    DOM.setStyleAttribute(clearLabel.getElement(), "cursor", "hand");

                                    clearLabel.addClickHandler(new ClickHandler() {
                                        public void onClick(ClickEvent event) {
                                            MainFactoryActions.removeUploadedFile(appID, finalParent,
                                                    finalUuId);
                                            DOM.setElementAttribute(fileUpload.getElement(), "fu-uuid", "");
                                            fileNameLabel.setVisible(false);
                                            clearLabel.setVisible(false);
                                            fileUpload.setVisible(true);
                                            uploadButton.setVisible(true);
                                            init(fileUpload, uploadButton);
                                        }
                                    });
                                    gridPanel.setWidget(1, 0, fileNameLabel);
                                    gridPanel.setWidget(1, 1, clearLabel);

                                    DOM.setElementAttribute(fileUpload.getElement(), "fu-uuid", uuId);
                                    CallbackHandler.createCallBack(formPanel, "onfinish", null, null);
                                } else {
                                    Hyperlink fileNameLabel = (Hyperlink) gridPanel.getWidget(1, 0);
                                    fileNameLabel.setText("Uploading unsuccessfull.");
                                    fileNameLabel.setVisible(true);
                                }
                            }
                        }
                    }
                }
            });
            uiObject.add(formPanel);

            init(fileUploadComponent, uploadButtonComponent);
        }
    }
    return uiObject;
}

From source file:org.bonitasoft.console.client.view.FileUploadWidget.java

License:Open Source License

protected FileUpload getFileUpload() {
    FileUpload fileUpload = new FileUpload();
    // mandatory/*from ww  w . j  a  v  a  2  s  . c om*/
    fileUpload.setName("uploadFormElement");
    if (myFileNameValidationHandler != null) {
        fileUpload.addChangeHandler(myFileNameValidationHandler);
    }
    fileUpload.getElement().setAttribute("size", "45%");
    return fileUpload;
}

From source file:org.bonitasoft.forms.client.view.widget.FileUploadWidget.java

License:Open Source License

protected FileUpload addFileUploalToFormPanel(final String fileUploadName) {

    final FileUpload fileUpload = new FileUpload();
    fileUpload.addChangeHandler(new ChangeHandler() {

        @Override//from   w  w  w  .ja va2 s  .co m
        public void onChange(final ChangeEvent event) {
            formPanel.submit();
        }
    });
    fileUpload.setStyleName("bonita_file_upload");
    // mandatory because we are in a true form with a post action
    fileUpload.setName(fileUploadName);
    if (DOMUtils.getInstance().isIE8()) {
        fileUpload.getElement().setPropertyString("contentEditable", "false");
    }
    formPanel.add(fileUpload);
    final UploadSubmitHandler uploadHandler = new UploadSubmitHandler();
    formPanel.addSubmitHandler(uploadHandler);
    formPanel.addSubmitCompleteHandler(uploadHandler);

    return fileUpload;
}

From source file:org.ow2.proactive_grid_cloud_portal.rm.client.nodesource.serialization.ImportFromFilePanel.java

License:Open Source License

private FileUpload getFileUploadItem() {
    FileUpload fileUpload = new FileUpload();
    fileUpload.setName(FILE_OPTION_NAME);
    fileUpload.addChangeHandler(onFileChosen -> {
        if (!fileUpload.getFilename().isEmpty()) {
            submit();//  ww  w  .  j  av a 2 s  .c o  m
        }
    });
    return fileUpload;
}

From source file:org.pentaho.mantle.client.dialogs.ImportDialog.java

License:Open Source License

/**
 * @param repositoryFile//w  ww .j  a  v a  2  s. com
 */
public ImportDialog(RepositoryFile repositoryFile, boolean allowAdvancedDialog) {
    super(Messages.getString("import"), Messages.getString("ok"), Messages.getString("cancel"), false, true); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

    form = new FormPanel();
    form.addSubmitHandler(new SubmitHandler() {
        @Override
        public void onSubmit(SubmitEvent se) {
            // if no file is selected then do not proceed
            okButton.setEnabled(false);
            cancelButton.setEnabled(false);
            MantleApplication.showBusyIndicator(Messages.getString("pleaseWait"),
                    Messages.getString("importInProgress"));
        }
    });
    form.addSubmitCompleteHandler(new SubmitCompleteHandler() {
        @Override
        public void onSubmitComplete(SubmitCompleteEvent sce) {
            MantleApplication.hideBusyIndicator();
            okButton.setEnabled(false);
            cancelButton.setEnabled(true);
            ImportDialog.this.hide();
            String result = sce.getResults();
            if (result.length() > 5) {
                HTML messageTextBox = null;
                if (result.contains("INVALID_MIME_TYPE") == true) {
                    messageTextBox = new HTML(Messages.getString("uploadInvalidFileTypeQuestion", result));
                } else {
                    logWindow(result, Messages.getString("importLogWindowTitle"));
                }

                if (messageTextBox != null) {
                    PromptDialogBox dialogBox = new PromptDialogBox(Messages.getString("uploadUnsuccessful"),
                            Messages.getString("close"), null, true, true);
                    dialogBox.setContent(messageTextBox);
                    dialogBox.center();
                }
            }

            // if mantle_isBrowseRepoDirty=true: do getChildren call
            // if mantle_isBrowseRepoDirty=false: use stored fileBrowserModel in myself.get("cachedData")
            setBrowseRepoDirty(Boolean.TRUE);

            // BISERVER-9319 Refresh browse perspective after import
            final GenericEvent event = new GenericEvent();
            event.setEventSubType("ImportDialogEvent");
            EventBusUtil.EVENT_BUS.fireEvent(event);
        }
    });

    VerticalPanel rootPanel = new VerticalPanel();

    VerticalPanel spacer = new VerticalPanel();
    spacer.setHeight("10px");
    rootPanel.add(spacer);

    Label fileLabel = new Label(Messages.getString("file") + ":");
    final TextBox importDir = new TextBox();
    rootPanel.add(fileLabel);

    okButton.setEnabled(false);

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

    //We use an fileNameOverride because FileUpload can only handle US character set reliably.
    final Hidden fileNameOverride = new Hidden("fileNameOverride");

    final FileUpload upload = new FileUpload();
    upload.setName("fileUpload");
    ChangeHandler fileUploadHandler = new ChangeHandler() {
        @Override
        public void onChange(ChangeEvent event) {
            fileTextBox.setText(upload.getFilename());
            if (!"".equals(importDir.getValue())) {
                //Set the fileNameOverride because the fileUpload object can only reliably transmit US-ASCII
                //character set.  See RFC283 section 2.3 for details
                String fileNameValue = upload.getFilename().replaceAll("\\\\", "/");
                fileNameValue = fileNameValue.substring(fileNameValue.lastIndexOf("/") + 1);
                fileNameOverride.setValue(fileNameValue);
                okButton.setEnabled(true);
            } else {
                okButton.setEnabled(false);
            }
        }
    };
    upload.addChangeHandler(fileUploadHandler);
    upload.setVisible(false);

    HorizontalPanel fileUploadPanel = new HorizontalPanel();
    fileUploadPanel.add(fileTextBox);
    fileUploadPanel.add(new HTML("&nbsp;"));

    Button browseButton = new Button(Messages.getString("browse") + "...");
    browseButton.setStyleName("pentaho-button");
    fileUploadPanel.add(browseButton);
    browseButton.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            setRetainOwnershipState();
            jsClickUpload(upload.getElement());
        }
    });

    rootPanel.add(fileUploadPanel);
    rootPanel.add(upload);

    applyAclPermissions.setName("applyAclPermissions");
    applyAclPermissions.setValue(Boolean.FALSE);
    applyAclPermissions.setFormValue("false");
    applyAclPermissions.setEnabled(true);
    applyAclPermissions.setVisible(false);

    final CheckBox overwriteAclPermissions = new CheckBox(Messages.getString("overwriteAclPermissions"), true);
    overwriteAclPermissions.setName("overwriteAclPermissions");
    applyAclPermissions.setValue(Boolean.FALSE);
    applyAclPermissions.setFormValue("false");
    overwriteAclPermissions.setEnabled(true);
    overwriteAclPermissions.setVisible(false);

    final Hidden overwriteFile = new Hidden("overwriteFile");
    overwriteFile.setValue("true");

    final Hidden logLevel = new Hidden("logLevel");
    logLevel.setValue("ERROR");

    final Hidden retainOwnership = new Hidden("retainOwnership");
    retainOwnership.setValue("true");

    rootPanel.add(applyAclPermissions);
    rootPanel.add(overwriteAclPermissions);
    rootPanel.add(overwriteFile);
    rootPanel.add(logLevel);
    rootPanel.add(retainOwnership);
    rootPanel.add(fileNameOverride);

    spacer = new VerticalPanel();
    spacer.setHeight("4px");
    rootPanel.add(spacer);

    DisclosurePanel disclosurePanel = new DisclosurePanel(Messages.getString("advancedOptions"));
    disclosurePanel.getHeader().setStyleName("gwt-Label");
    disclosurePanel.setVisible(allowAdvancedDialog);
    HorizontalPanel mainPanel = new HorizontalPanel();
    mainPanel.add(new HTML("&nbsp;"));
    VerticalPanel disclosureContent = new VerticalPanel();

    HTML replaceLabel = new HTML(Messages.getString("fileExists"));
    replaceLabel.setStyleName("gwt-Label");
    disclosureContent.add(replaceLabel);

    final CustomListBox overwriteFileDropDown = new CustomListBox();
    final CustomListBox filePermissionsDropDown = new CustomListBox();

    DefaultListItem replaceListItem = new DefaultListItem(Messages.getString("replaceFile"));
    replaceListItem.setValue("true");
    overwriteFileDropDown.addItem(replaceListItem);
    DefaultListItem doNotImportListItem = new DefaultListItem(Messages.getString("doNotImport"));
    doNotImportListItem.setValue("false");
    overwriteFileDropDown.addItem(doNotImportListItem);
    overwriteFileDropDown.setVisibleRowCount(1);
    disclosureContent.add(overwriteFileDropDown);

    spacer = new VerticalPanel();
    spacer.setHeight("4px");
    disclosureContent.add(spacer);

    HTML filePermissionsLabel = new HTML(Messages.getString("filePermissions"));
    filePermissionsLabel.setStyleName("gwt-Label");
    disclosureContent.add(filePermissionsLabel);

    DefaultListItem usePermissionsListItem = new DefaultListItem(Messages.getString("usePermissions"));
    usePermissionsListItem.setValue("false");
    filePermissionsDropDown.addItem(usePermissionsListItem); // If selected set "overwriteAclPermissions" to
    // false.
    DefaultListItem retainPermissionsListItem = new DefaultListItem(Messages.getString("retainPermissions"));
    retainPermissionsListItem.setValue("true");
    filePermissionsDropDown.addItem(retainPermissionsListItem); // If selected set "overwriteAclPermissions" to
    // true.

    final ChangeListener filePermissionsHandler = new ChangeListener() {
        @Override
        public void onChange(Widget sender) {
            String value = filePermissionsDropDown.getSelectedItem().getValue().toString();

            applyAclPermissions.setValue(Boolean.valueOf(value));
            applyAclPermissions.setFormValue(value);
            overwriteAclPermissions.setFormValue(value);
            overwriteAclPermissions.setValue(Boolean.valueOf(value));
            setRetainOwnershipState();
        }
    };
    filePermissionsDropDown.addChangeListener(filePermissionsHandler);
    filePermissionsDropDown.setVisibleRowCount(1);
    disclosureContent.add(filePermissionsDropDown);

    spacer = new VerticalPanel();
    spacer.setHeight("4px");
    disclosureContent.add(spacer);

    HTML fileOwnershipLabel = new HTML(Messages.getString("fileOwnership"));
    fileOwnershipLabel.setStyleName("gwt-Label");
    disclosureContent.add(fileOwnershipLabel);

    retainOwnershipDropDown.addChangeListener(new ChangeListener() {
        @Override
        public void onChange(Widget sender) {
            String value = retainOwnershipDropDown.getSelectedItem().getValue().toString();
            retainOwnership.setValue(value);
        }
    });
    DefaultListItem keepOwnershipListItem = new DefaultListItem(Messages.getString("keepOwnership"));
    keepOwnershipListItem.setValue("true");
    retainOwnershipDropDown.addItem(keepOwnershipListItem);
    DefaultListItem assignOwnershipListItem = new DefaultListItem(Messages.getString("assignOwnership"));
    assignOwnershipListItem.setValue("false");
    retainOwnershipDropDown.addItem(assignOwnershipListItem);

    retainOwnershipDropDown.setVisibleRowCount(1);
    disclosureContent.add(retainOwnershipDropDown);

    spacer = new VerticalPanel();
    spacer.setHeight("4px");
    disclosureContent.add(spacer);

    ChangeListener overwriteFileHandler = new ChangeListener() {
        @Override
        public void onChange(Widget sender) {
            String value = overwriteFileDropDown.getSelectedItem().getValue().toString();
            overwriteFile.setValue(value);
        }
    };
    overwriteFileDropDown.addChangeListener(overwriteFileHandler);

    HTML loggingLabel = new HTML(Messages.getString("logging"));
    loggingLabel.setStyleName("gwt-Label");
    disclosureContent.add(loggingLabel);

    final CustomListBox loggingDropDown = new CustomListBox();
    loggingDropDown.addChangeListener(new ChangeListener() {
        public void onChange(Widget sender) {
            String value = loggingDropDown.getSelectedItem().getValue().toString();
            logLevel.setValue(value);
        }
    });
    DefaultListItem noneListItem = new DefaultListItem(Messages.getString("none"));
    noneListItem.setValue("ERROR");
    loggingDropDown.addItem(noneListItem);
    DefaultListItem shortListItem = new DefaultListItem(Messages.getString("short"));
    shortListItem.setValue("WARN");
    loggingDropDown.addItem(shortListItem);
    DefaultListItem debugListItem = new DefaultListItem(Messages.getString("verbose"));
    debugListItem.setValue("TRACE");
    loggingDropDown.addItem(debugListItem);
    loggingDropDown.setVisibleRowCount(1);
    disclosureContent.add(loggingDropDown);

    mainPanel.add(disclosureContent);
    disclosurePanel.setContent(mainPanel);
    rootPanel.add(disclosurePanel);

    importDir.setName("importDir");
    importDir.setText(repositoryFile.getPath());
    importDir.setVisible(false);

    rootPanel.add(importDir);

    form.setEncoding(FormPanel.ENCODING_MULTIPART);
    form.setMethod(FormPanel.METHOD_POST);

    setFormAction();

    form.add(rootPanel);

    setContent(form);
}

From source file:org.pentaho.platform.dataaccess.datasource.ui.importing.MetadataImportDialogController.java

License:Open Source License

@Bindable
public void addLocalizedBundle() {
    final FileUpload localizedBundleUpload = new FileUpload();
    localizedBundleUpload.setName("localeFiles");
    localizedBundleUpload.getElement().setId("propertyFileUpload" + FILE_UPLOAD_SUFFIX++);
    localizedBundleUpload.addChangeHandler(new ChangeHandler() {
        @Override//from   w  w  w . j a  v a2s  .  c  o m
        public void onChange(ChangeEvent event) {
            String fileName = ((FileUpload) event.getSource()).getFilename();
            if (fileName == null || fileName.length() < 1) { // Trying to detect a cancel
                propertiesFileImportPanel.remove(localizedBundleUpload);
            } else {
                importDialogModel.addLocalizedBundle(fileName, fileName);
            }
        }
    });
    propertiesFileImportPanel.add(localizedBundleUpload);
    jsClickUpload(localizedBundleUpload.getElement().getId());
}