Example usage for com.vaadin.client.ui VButton VButton

List of usage examples for com.vaadin.client.ui VButton VButton

Introduction

In this page you can find the example usage for com.vaadin.client.ui VButton VButton.

Prototype

public VButton() 

Source Link

Usage

From source file:com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadProgressWindow.java

License:Apache License

protected void constructDOM() {
    setStyleName(CLASSNAME);/*  w  ww. j a v a2  s .com*/

    topTabStop = DOM.createDiv();
    topTabStop.setTabIndex(0);

    header = DOM.createDiv();
    header.setClassName(CLASSNAME + "-outerheader");

    headerText = DOM.createDiv();
    headerText.setClassName(CLASSNAME + "-header");

    contents = DOM.createDiv();
    contents.setClassName(CLASSNAME + "-contents");

    footer = DOM.createDiv();
    footer.setClassName(CLASSNAME + "-footer");

    resizeBox = DOM.createDiv();
    resizeBox.setClassName(CLASSNAME + "-resizebox");

    closeBox = DOM.createDiv();
    closeBox.setClassName(CLASSNAME + "-closebox");
    closeBox.setTabIndex(0);

    DOM.appendChild(footer, resizeBox);

    bottomTabStop = DOM.createDiv();
    bottomTabStop.setTabIndex(0);

    wrapper = DOM.createDiv();
    wrapper.setClassName(CLASSNAME + "-wrap");

    DOM.appendChild(wrapper, topTabStop);
    DOM.appendChild(wrapper, header);
    DOM.appendChild(header, closeBox);
    DOM.appendChild(header, headerText);
    DOM.appendChild(wrapper, contents);
    DOM.appendChild(wrapper, footer);
    DOM.appendChild(wrapper, bottomTabStop);
    DOM.appendChild(super.getContainerElement(), wrapper);

    sinkEvents(Event.ONDBLCLICK | Event.MOUSEEVENTS | Event.TOUCHEVENTS | Event.ONCLICK | Event.ONLOSECAPTURE);

    currentFileLabel = new VLabel();
    currentFileLabel.addStyleName("upload-file-label");
    currentFileLabel.setWidth("100%");

    progressBar = new VProgressBar();
    progressBar.addStyleName("upload-progressbar");
    progressBar.setIndeterminate(false);
    progressBar.setState(0);
    progressBar.setWidth("100%");

    cancelButton = new VButton();
    cancelButton.addStyleName("upload-cancel-button");
    cancelButton.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            closeWindow();
        }
    });

    contentPanel = new SimpleFocusablePanel();
    contentPanel.setStyleName("content-pane");
    contentPanel.addKeyDownHandler(this);
    contentPanel.addKeyUpHandler(this);

    setWidget(contentPanel);

    final FlowPanel verticalPanel = new FlowPanel();
    verticalPanel.setStyleName("vertical-panel");
    verticalPanel.addStyleName("v-widget");
    verticalPanel.addStyleName("v-has-width");
    verticalPanel.addStyleName("v-has-height");

    verticalPanel.add(currentFileLabel);
    verticalPanel.add(progressBar);
    verticalPanel.add(cancelButton);

    contentPanel.setWidget(verticalPanel);

    // do some calculations for window layout
    Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
        @Override
        public void execute() {
            Style contentStyle = contents.getStyle();

            ComputedStyle headerCs = new ComputedStyle(header);
            String headerHeight = headerCs.getProperty("height");
            contentStyle.setProperty("paddingTop", headerHeight);
            contentStyle.setProperty("marginTop", "-" + headerHeight);

            ComputedStyle footerCs = new ComputedStyle(footer);
            String footerHeight = footerCs.getProperty("height");
            contentStyle.setProperty("paddingBottom", footerHeight);
            contentStyle.setProperty("marginBottom", "-" + footerHeight);
        }
    });

    // Make the closebox accessible for assistive devices
    Roles.getButtonRole().set(closeBox);
    Roles.getButtonRole().setAriaLabelProperty(closeBox, "close button");

    // Provide the title to assistive devices
    AriaHelper.ensureHasId(headerText);
    Roles.getDialogRole().setAriaLabelledbyProperty(getElement(), Id.of(headerText));

    // Handlers to Prevent tab to leave the window
    // and backspace to cause browser navigation
    topEventBlocker = new Event.NativePreviewHandler() {
        @Override
        public void onPreviewNativeEvent(Event.NativePreviewEvent event) {
            NativeEvent nativeEvent = event.getNativeEvent();
            if (nativeEvent.getEventTarget().cast() == topTabStop
                    && nativeEvent.getKeyCode() == KeyCodes.KEY_TAB && nativeEvent.getShiftKey()) {
                nativeEvent.preventDefault();
            }
            if (nativeEvent.getEventTarget().cast() == topTabStop
                    && nativeEvent.getKeyCode() == KeyCodes.KEY_BACKSPACE) {
                nativeEvent.preventDefault();
            }
        }
    };

    bottomEventBlocker = new Event.NativePreviewHandler() {
        @Override
        public void onPreviewNativeEvent(Event.NativePreviewEvent event) {
            NativeEvent nativeEvent = event.getNativeEvent();
            if (nativeEvent.getEventTarget().cast() == bottomTabStop
                    && nativeEvent.getKeyCode() == KeyCodes.KEY_TAB && !nativeEvent.getShiftKey()) {
                nativeEvent.preventDefault();
            }
            if (nativeEvent.getEventTarget().cast() == bottomTabStop
                    && nativeEvent.getKeyCode() == KeyCodes.KEY_BACKSPACE) {
                nativeEvent.preventDefault();
            }
        }
    };
}

From source file:com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadWidget.java

License:Apache License

public CubaFileUploadWidget() {
    submitButton = new VButton();
    submitButton.addClickHandler(new ClickHandler() {
        @Override/*from   w w w  .  jav a  2  s  .  c om*/
        public void onClick(ClickEvent event) {
            fireNativeClick(getFileInputElement());
        }
    });
    add(submitButton);
    submitButton.setTabIndex(-1);

    setStyleName(DEFAULT_CLASSNAME);

    Element inputElement = Document.get().createFileInputElement();
    inputElement.setAttribute("name", "files[]");
    inputElement.setAttribute("title", " ");
    listenToFocusEvents(inputElement);

    getElement().appendChild(inputElement);

    fileUpload = new JQueryFileUploadOverlay(this) {
        protected boolean canceled = false;

        @Override
        protected boolean isValidFile(String name, double size) {
            if (fileSizeLimit > 0 && size > fileSizeLimit) {
                if (filePermissionsHandler != null) {
                    filePermissionsHandler.fileSizeLimitExceeded(name);
                }
                return false;
            }

            if (hasInvalidExtension(name)) {
                if (filePermissionsHandler != null) {
                    filePermissionsHandler.fileExtensionNotAllowed(name);
                }
                return false;
            }

            return true;
        }

        protected boolean hasInvalidExtension(String name) {
            if (permittedExtensions != null && !permittedExtensions.isEmpty()) {
                if (name.lastIndexOf(".") > 0) {
                    String fileExtension = name.substring(name.lastIndexOf("."), name.length());
                    return !permittedExtensions.contains(fileExtension.toLowerCase());
                }
                return true;
            }
            return false;
        }

        @Override
        protected void queueUploadStart() {
            // listen to events of new input element
            listenToFocusEvents(getFileInputElement());

            progressWindow = new CubaFileUploadProgressWindow();
            progressWindow.setOwner(CubaFileUploadWidget.this);
            progressWindow.addStyleName(getStylePrimaryName() + "-progresswindow");

            progressWindow.setVaadinModality(true);
            progressWindow.setDraggable(true);
            progressWindow.setResizable(false);
            progressWindow.setClosable(true);

            progressWindow.setCaption(progressWindowCaption);
            progressWindow.setCancelButtonCaption(cancelButtonCaption);

            progressWindow.closeListener = new CubaFileUploadProgressWindow.CloseListener() {
                @Override
                public void onClose() {
                    canceled = true;
                    // null progress to prevent repeated hide() call inside cancelUploading
                    progressWindow = null;

                    cancelUploading();

                    if (queueUploadListener != null) {
                        queueUploadListener.uploadFinished();
                    }
                }
            };

            progressWindow.setVisible(false);
            progressWindow.show();
            progressWindow.center();
            progressWindow.setVisible(true);

            canceled = false;
        }

        @Override
        protected void fileUploadStart(String fileName) {
            if (progressWindow != null) {
                progressWindow.setCurrentFileName(fileName);
            }
        }

        @Override
        protected void fileUploadSucceed(String fileName) {
            if (fileUploadedListener != null) {
                fileUploadedListener.fileUploaded(fileName);
            }
        }

        @Override
        protected void uploadProgress(double loaded, double total) {
            if (progressWindow != null) {
                float ratio = (float) (loaded / total);
                progressWindow.setProgress(ratio);
            }
        }

        @Override
        protected void queueUploadStop() {
            if (progressWindow != null) {
                progressWindow.hide();
                progressWindow = null;
            }

            getFileInputElement().focus();

            if (queueUploadListener != null) {
                queueUploadListener.uploadFinished();
            }
        }

        @Override
        protected void uploadFailed(String textStatus, String errorThrown) {
            if (ignoreExceptions) {
                if (progressWindow != null)
                    progressWindow.hide();
                return;
            }

            if (!canceled) {
                if (unableToUploadFileMessage != null) {
                    // show notification without server round trip, server may be unreachable
                    VNotification notification = VNotification.createNotification(-1,
                            CubaFileUploadWidget.this);
                    String fileName = "";
                    if (progressWindow != null) {
                        fileName = progressWindow.getCurrentFileName();
                    }

                    String message = "<h1>"
                            + WidgetUtil.escapeHTML(unableToUploadFileMessage.replace("%s", fileName))
                            + "</h1>";
                    notification.show(message, Position.MIDDLE_CENTER, "error");
                }

                canceled = true;
                cancelUploading();
            }
        }
    };
}

From source file:com.haulmont.cuba.web.toolkit.ui.client.twincolselect.CubaTwinColSelectWidget.java

License:Apache License

protected void enableAddAllBtn() {
    HTML br1 = new HTML("<span/>");
    br1.setStyleName(CLASSNAME + "-deco");
    buttons.add(br1);//w  w  w  .j a v a  2s.c  o  m
    buttons.insert(br1, buttons.getWidgetIndex(add) + 1);
    addAll = new VButton();
    addAll.setText(">>");
    addAll.addStyleName("addAll");
    addAllHandlerRegistration = addAll.addClickHandler(this);
    buttons.insert(addAll, buttons.getWidgetIndex(br1) + 1);

    HTML br2 = new HTML("<span/>");
    br2.setStyleName(CLASSNAME + "-deco");
    buttons.add(br2);

    removeAll = new VButton();
    removeAll.setText("<<");
    removeAll.addStyleName("removeAll");
    removeAllHandlerRegistration = removeAll.addClickHandler(this);
    buttons.add(removeAll);
}

From source file:com.haulmont.cuba.web.widgets.client.jqueryfileupload.CubaFileUploadWidget.java

License:Apache License

public CubaFileUploadWidget() {
    submitButton = new VButton();
    submitButton.addClickHandler(new ClickHandler() {
        @Override/*  w  w  w.  ja va2  s .c o  m*/
        public void onClick(ClickEvent event) {
            fireNativeClick(getFileInputElement());
        }
    });
    add(submitButton);
    submitButton.setTabIndex(-1);

    setStyleName(DEFAULT_CLASSNAME);

    Element inputElement = Document.get().createFileInputElement();
    inputElement.setAttribute("name", "files[]");
    if (!BrowserInfo.get().isIE() && !BrowserInfo.get().isEdge()) {
        inputElement.setAttribute("title", " ");
    }
    listenToFocusEvents(inputElement);

    getElement().appendChild(inputElement);

    fileUpload = new JQueryFileUploadOverlay(this) {
        protected boolean canceled = false;

        @Override
        protected boolean isValidFile(String name, double size) {
            if (fileSizeLimit > 0 && size > fileSizeLimit) {
                if (filePermissionsHandler != null) {
                    filePermissionsHandler.fileSizeLimitExceeded(name);
                }
                return false;
            }

            if (hasInvalidExtension(name)) {
                if (filePermissionsHandler != null) {
                    filePermissionsHandler.fileExtensionNotAllowed(name);
                }
                return false;
            }

            return true;
        }

        protected boolean hasInvalidExtension(String name) {
            if (permittedExtensions != null && !permittedExtensions.isEmpty()) {
                if (name.lastIndexOf(".") > 0) {
                    String fileExtension = name.substring(name.lastIndexOf("."), name.length());
                    return !permittedExtensions.contains(fileExtension.toLowerCase());
                }
                return true;
            }
            return false;
        }

        @Override
        protected void queueUploadStart() {
            // listen to events of new input element
            listenToFocusEvents(getFileInputElement());

            progressWindow = new CubaFileUploadProgressWindow();
            progressWindow.setOwner(CubaFileUploadWidget.this);
            progressWindow.addStyleName(getStylePrimaryName() + "-progresswindow");

            progressWindow.setVaadinModality(true);
            progressWindow.setDraggable(true);
            progressWindow.setResizable(false);
            progressWindow.setClosable(true);

            progressWindow.setCaption(progressWindowCaption);
            progressWindow.setCancelButtonCaption(cancelButtonCaption);

            progressWindow.closeListener = new CubaFileUploadProgressWindow.CloseListener() {
                @Override
                public void onClose() {
                    canceled = true;
                    // null progress to prevent repeated hide() call inside cancelUploading
                    progressWindow = null;

                    cancelUploading();

                    if (queueUploadListener != null) {
                        queueUploadListener.uploadFinished();
                    }
                }
            };

            progressWindow.setVisible(false);
            progressWindow.show();
            progressWindow.center();
            progressWindow.setVisible(true);

            canceled = false;
        }

        @Override
        protected void fileUploadStart(String fileName) {
            if (progressWindow != null) {
                progressWindow.setCurrentFileName(fileName);
            }
        }

        @Override
        protected void fileUploadSucceed(String fileName) {
            if (fileUploadedListener != null) {
                fileUploadedListener.fileUploaded(fileName);
            }
        }

        @Override
        protected void uploadProgress(double loaded, double total) {
            if (progressWindow != null) {
                float ratio = (float) (loaded / total);
                progressWindow.setProgress(ratio);
            }
        }

        @Override
        protected void queueUploadStop() {
            if (progressWindow != null) {
                progressWindow.hide();
                progressWindow = null;
            }

            getFileInputElement().focus();

            if (queueUploadListener != null) {
                queueUploadListener.uploadFinished();
            }
        }

        @Override
        protected void uploadFailed(String textStatus, String errorThrown) {
            if (ignoreExceptions) {
                if (progressWindow != null)
                    progressWindow.hide();
                return;
            }

            if (!canceled) {
                if (unableToUploadFileMessage != null) {
                    // show notification without server round trip, server may be unreachable
                    VNotification notification = VNotification.createNotification(-1,
                            CubaFileUploadWidget.this);
                    String fileName = "";
                    if (progressWindow != null) {
                        fileName = progressWindow.getCurrentFileName();
                    }

                    String message = "<h1>"
                            + WidgetUtil.escapeHTML(unableToUploadFileMessage.replace("%s", fileName))
                            + "</h1>";
                    notification.show(message, Position.MIDDLE_CENTER, "error");
                }

                canceled = true;
                cancelUploading();
            }
        }
    };
}

From source file:com.wcs.wcslib.vaadin.widget.multifileupload.client.VMultiUpload.java

License:Apache License

public VMultiUpload() {
    super(com.google.gwt.dom.client.Document.get().createDivElement());

    setWidget(panel);// ww w.j  a  v  a2 s.com
    panel.add(fu);
    submitButton = new VButton();
    submitButton.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            // fire click on upload (eg. focused button and hit space)
            fireNativeClick(fu.getElement());
        }
    });
    panel.add(submitButton);

    setStyleName(CLASSNAME);
    fu.sinkEvents(Event.ONCHANGE);
    fu.sinkEvents(Event.ONFOCUS);
    addStyleName(CLASSNAME + "-immediate");
}