Example usage for com.vaadin.ui Button addListener

List of usage examples for com.vaadin.ui Button addListener

Introduction

In this page you can find the example usage for com.vaadin.ui Button addListener.

Prototype

@Override
    public Registration addListener(Component.Listener listener) 

Source Link

Usage

From source file:com.trivago.mail.pigeon.web.components.recipients.RecipientList.java

License:Apache License

private void init() {
    final Panel rootPanel = new Panel("Recipients");
    rootPanel.setWidth("800px");

    //      Button senderListNewButton = new Button("Add Sender");
    //      senderListNewButton.setImmediate(true);
    //      senderListNewButton.setIcon(new ThemeResource("../runo/icons/16/document-add.png"));
    //      senderListNewButton.addListener(new Button.ClickListener()
    //      {//from w  w  w. ja  v  a  2  s . co  m
    //         @Override
    //         public void buttonClick(Button.ClickEvent event)
    //         {
    //            Window modalNewWindow = new ModalAddNewSender(sl);
    //            event.getButton().getWindow().addWindow(modalNewWindow);
    //            modalNewWindow.setVisible(true);
    //         }
    //      });

    viewTable = new Table();
    viewTable.setWidth("100%");
    final Button editButton = new Button("Edit");
    editButton.setImmediate(true);
    editButton.setIcon(new ThemeResource("../runo/icons/16/document-txt.png"));
    editButton.addListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent event) {
            if (viewTable.isEditable()) {
                viewTable.setEditable(false);
                editButton.setCaption("Edit");
                viewTable.requestRepaintAll();
                editButton.getWindow().showNotification("Save successful",
                        Window.Notification.TYPE_HUMANIZED_MESSAGE);
            } else {
                viewTable.setEditable(true);
                editButton.setCaption("Save");
                viewTable.requestRepaintAll();
            }
        }
    });

    Button exportTable = new Button("Export");
    exportTable.setImmediate(true);
    exportTable.setIcon(new ThemeResource("../runo/icons/16/document-xsl.png"));
    exportTable.addListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent event) {
            log.debug("Starting export");
            TableExport te = new ExcelExport(viewTable, "Recipient list", "Recipient list",
                    "Recipient_list.xls", false);
            log.debug("Converting table");
            te.convertTable();
            log.debug("Sending converted table...");
            boolean success = te.sendConverted();
            if (success) {
                log.debug("Sending should be successful");
            } else {
                log.warn("Sending not successfull, maybe IOException occured?");
            }
        }
    });

    viewTable.setImmediate(true);
    beanContainer = new BeanContainer<>(Recipient.class);

    List<Recipient> recipientList = getRecipientList();
    for (Recipient recipient : recipientList) {
        beanContainer.addItem(recipient.getId(), recipient);
    }

    viewTable.setContainerDataSource(beanContainer);
    viewTable.addGeneratedColumn("Actions", new ActionButtonColumnGenerator());

    // First set the vis. cols, then the headlines (the other way round leads to an exception)
    viewTable.setVisibleColumns(new String[] { "id", "title", "firstname", "lastname", "email", "active",
            "gender", "birthday", "city", "country", "language", "Actions" });

    viewTable.setColumnHeaders(new String[] { "ID", "Title", "Firstname", "Lastname", "E-Mail", "Active",
            "Gender", "Birthday", "City", "Country", "Language", "Actions" });

    viewTable.setColumnCollapsingAllowed(true);

    viewTable.setColumnCollapsed("gender", true);
    viewTable.setColumnCollapsed("title", true);
    viewTable.setColumnCollapsed("birthday", true);
    viewTable.setColumnCollapsed("city", true);
    viewTable.setColumnCollapsed("country", true);
    viewTable.setColumnCollapsed("language", true);

    viewTable.setColumnExpandRatio(3, 2);
    viewTable.setColumnExpandRatio(4, 2);

    HorizontalLayout topButtonLayout = new HorizontalLayout();
    topButtonLayout.setSpacing(true);
    topButtonLayout.setMargin(false, false, true, false);
    topButtonLayout.addComponent(editButton);
    topButtonLayout.addComponent(exportTable);

    rootPanel.addComponent(topButtonLayout);
    rootPanel.addComponent(viewTable);

    setCompositionRoot(rootPanel);
}

From source file:com.trivago.mail.pigeon.web.components.sender.ActionButtonColumnGenerator.java

License:Apache License

@Override
public Object generateCell(final Table source, final Object itemId, final Object columnId) {
    HorizontalLayout hl = new HorizontalLayout();
    Button deleteButton = new Button();
    deleteButton.setImmediate(true);//from   w w  w  .  j av a  2s  .  c o  m
    deleteButton.setIcon(new ThemeResource("../runo/icons/16/trash.png"));
    deleteButton.setDescription("Delete sender");
    deleteButton.addListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent event) {
            Transaction tx = ConnectionFactory.getDatabase().beginTx();
            try {
                Sender s = new Sender((Long) itemId);
                ConnectionFactory.getSenderIndex().remove(s.getDataNode());

                for (Relationship r : s.getDataNode().getRelationships()) {
                    r.delete();
                }
                s.getDataNode().delete();

                source.removeItem(itemId);
                source.getWindow().showNotification("Successfully deleted.");
                tx.success();
            } catch (Exception e) {
                source.getWindow().showNotification("Error while deleting entry: " + e.getMessage(),
                        Window.Notification.TYPE_ERROR_MESSAGE);
                log.error(e);
                tx.failure();
            } finally {
                tx.finish();
            }
        }
    });

    hl.addComponent(deleteButton);
    return hl;
}

From source file:com.trivago.mail.pigeon.web.components.sender.ModalAddNewSender.java

License:Apache License

public ModalAddNewSender(final SenderList sl) {
    super();// w w  w .jav a 2s  .c  o  m
    setClosable(false);
    setModal(true);
    setWidth("300px");

    Panel rootPanel = new Panel("Add new Sender");
    final VerticalLayout verticalLayout = new VerticalLayout();
    final TextField tfName = new TextField("Name");
    final TextField tfFromMail = new TextField("From E-Mail");
    final TextField tfReplyTo = new TextField("ReplyTo E-Mail");

    verticalLayout.addComponent(tfName);
    verticalLayout.addComponent(tfFromMail);
    verticalLayout.addComponent(tfReplyTo);

    HorizontalLayout buttonLayout = new HorizontalLayout();

    Button saveButton = new Button("Save");
    Button cancelButton = new Button("Cancel");

    cancelButton.addListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent event) {
            event.getButton().getWindow().setVisible(false);
            event.getButton().getWindow().getParent().removeComponent(event.getButton().getWindow());
        }
    });

    saveButton.addListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent event) {
            if (tfName.getValue().equals("")) {
                tfName.setComponentError(new UserError("Name must not be empty"));
            } else {
                tfName.setComponentError(null);
            }

            if (tfFromMail.getValue().equals("")) {
                tfFromMail.setComponentError(new UserError("From E-Mail must not be empty"));
            } else {
                tfFromMail.setComponentError(null);
            }

            if (tfReplyTo.getValue().equals("")) {
                tfReplyTo.setComponentError(new UserError("Reply-To E-Mail must not be empty"));
            } else {
                tfReplyTo.setComponentError(null);
            }

            if (!tfName.getValue().equals("") && !tfFromMail.getValue().equals("")
                    && !tfReplyTo.getValue().equals("")) {
                tfName.setComponentError(null);
                tfFromMail.setComponentError(null);
                tfReplyTo.setComponentError(null);

                long senderId = Util.generateId();
                try {
                    Sender s = new Sender(senderId, tfFromMail.getValue().toString(),
                            tfReplyTo.getValue().toString(), tfName.getValue().toString());
                    event.getButton().getWindow().setVisible(false);
                    event.getButton().getWindow().getParent().removeComponent(event.getButton().getWindow());
                    event.getButton().getWindow().getParent().showNotification("Saved successfully",
                            Notification.TYPE_HUMANIZED_MESSAGE);
                    sl.getBeanContainer().addItem(s.getId(), s);

                    // The sender select could be placed anywhere but must be reloaded to reflect the changes.
                    SenderSelectBox.reloadSelect();
                } catch (RuntimeException e) {
                    // Should never happen ... hopefully :D
                }
            }
        }
    });

    buttonLayout.setSpacing(true);
    buttonLayout.addComponent(saveButton);
    buttonLayout.addComponent(cancelButton);

    verticalLayout.addComponent(buttonLayout);
    rootPanel.addComponent(verticalLayout);
    this.addComponent(rootPanel);
}

From source file:com.trivago.mail.pigeon.web.components.sender.SenderList.java

License:Apache License

public SenderList() {
    final SenderList sl = this;
    final Panel rootPanel = new Panel("Sender");
    rootPanel.setWidth("800px");

    Button senderListNewButton = new Button("Add Sender");
    senderListNewButton.setImmediate(true);
    senderListNewButton.setIcon(new ThemeResource("../runo/icons/16/document-add.png"));
    senderListNewButton.addListener(new Button.ClickListener() {
        @Override//ww  w.j av a 2  s  . c o m
        public void buttonClick(Button.ClickEvent event) {
            Window modalNewWindow = new ModalAddNewSender(sl);
            event.getButton().getWindow().addWindow(modalNewWindow);
            modalNewWindow.setVisible(true);
        }
    });

    viewTable = new Table();
    viewTable.setWidth("100%");
    final Button editButton = new Button("Edit");
    editButton.setImmediate(true);
    editButton.setIcon(new ThemeResource("../runo/icons/16/document-txt.png"));
    editButton.addListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent event) {
            if (viewTable.isEditable()) {
                viewTable.setEditable(false);
                editButton.setCaption("Edit");
                viewTable.requestRepaintAll();
                editButton.getWindow().showNotification("Save successful",
                        Window.Notification.TYPE_HUMANIZED_MESSAGE);
            } else {
                viewTable.setEditable(true);
                editButton.setCaption("Save");
                viewTable.requestRepaintAll();
            }
        }
    });

    viewTable.setImmediate(true);
    beanContainer = new BeanContainer<Long, Sender>(Sender.class);

    List<Sender> senderList = getSenderList();
    for (Sender sender : senderList) {
        beanContainer.addItem(sender.getId(), sender);
    }

    viewTable.setContainerDataSource(beanContainer);
    viewTable.addGeneratedColumn("Actions", new ActionButtonColumnGenerator());

    // First set the vis. cols, then the headlines (the other way round leads to an exception)
    viewTable.setVisibleColumns(
            new String[] { "id", "name", "fromMail", "replytoMail", "sentMailsCount", "Actions" });

    viewTable.setColumnHeaders(new String[] { "ID", "Name", "E-Mail", "Reply To", "E-Mails sent", "Actions" });

    viewTable.setColumnExpandRatio(3, 2);
    viewTable.setColumnExpandRatio(4, 2);

    HorizontalLayout topButtonLayout = new HorizontalLayout();
    topButtonLayout.setSpacing(true);
    topButtonLayout.setMargin(false, false, true, false);
    topButtonLayout.addComponent(senderListNewButton);
    topButtonLayout.addComponent(editButton);

    rootPanel.addComponent(topButtonLayout);
    rootPanel.addComponent(viewTable);

    setCompositionRoot(rootPanel);

}

From source file:com.trivago.mail.pigeon.web.components.templates.ActionButtonColumnGenerator.java

License:Apache License

@Override
public Object generateCell(final Table source, final Object itemId, final Object columnId) {
    HorizontalLayout hl = new HorizontalLayout();

    Button deleteButton = new Button();
    deleteButton.setImmediate(true);//from  w ww  .  j a va  2 s .co m
    deleteButton.setIcon(new ThemeResource("../runo/icons/16/trash.png"));
    deleteButton.setDescription("Delete template");
    deleteButton.addListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent event) {
            Transaction tx = ConnectionFactory.getDatabase().beginTx();
            try {
                MailTemplate mt = new MailTemplate((Long) itemId);
                ConnectionFactory.getNewsletterIndex().remove(mt.getDataNode());

                for (Relationship r : mt.getDataNode().getRelationships()) {
                    r.delete();
                }
                mt.getDataNode().delete();

                source.removeItem(itemId);
                source.getWindow().showNotification("Successfully deleted.");
                tx.success();
            } catch (Exception e) {
                source.getWindow().showNotification("Error while deleting entry: " + e.getMessage(),
                        Window.Notification.TYPE_ERROR_MESSAGE);
                log.error(e);
                tx.failure();
            } finally {
                tx.finish();
            }
        }
    });

    Button editButton = new Button();
    editButton.setImmediate(true);
    editButton.setIcon(new ThemeResource("../runo/icons/16/document-txt.png"));
    editButton.setDescription("Edit template");
    editButton.addListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent event) {
            Window modalNewWindow = new ModalAddTemplate(
                    (TemplateList) source.getParent().getParent().getParent(), (Long) itemId);
            event.getButton().getWindow().addWindow(modalNewWindow);
            modalNewWindow.setVisible(true);
        }
    });

    hl.addComponent(editButton);
    hl.addComponent(deleteButton);
    return hl;
}

From source file:com.trivago.mail.pigeon.web.components.templates.ModalAddTemplate.java

License:Apache License

public ModalAddTemplate(final TemplateList tl, final Long templateId) {
    setResizable(true);// ww w.  j a va2 s . com
    setWidth("972px");
    setHeight("700px");
    Panel rootPanel = new Panel("Add new Template");
    TabSheet tSheet = new TabSheet();
    HorizontalLayout hLayout = new HorizontalLayout();

    final TextField title = new TextField("Template description");
    final TextField subject = new TextField("Newsletter Subject");

    final TextArea textContent = new TextArea("Text Version");
    textContent.setRows(40);
    textContent.setColumns(100);

    final CKEditorTextField htmlContent = new CKEditorTextField();
    htmlContent.setWidth("100%");
    htmlContent.setHeight("650px");

    // Load the content, if we receive a template id
    if (templateId != null) {
        MailTemplate mt = new MailTemplate(templateId);
        title.setValue(mt.getTitle());
        subject.setValue(mt.getSubject());
        textContent.setValue(mt.getText());
        htmlContent.setValue(mt.getHtml());
    }

    Button saveButton = new Button("Save");
    Button cancel = new Button("Cancel");

    saveButton.addListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent event) {
            boolean hasError = false;
            if (title.getValue().equals("")) {
                title.setComponentError(new UserError("Name must not be empty"));
                hasError = true;
            } else {
                title.setComponentError(null);
            }

            if (subject.getValue().equals("")) {
                subject.setComponentError(new UserError("Subject must not be empty"));
                hasError = true;
            } else {
                subject.setComponentError(null);
            }

            if (htmlContent.getValue().equals("")) {
                htmlContent.setComponentError(new UserError("Please provide some HTML content"));
                hasError = true;
            } else {
                htmlContent.setComponentError(null);
            }

            if (textContent.getValue().equals("")) {
                textContent.setComponentError(new UserError("Please provide some text content"));
                hasError = true;
            } else {
                textContent.setComponentError(null);
            }

            if (!hasError) {
                if (templateId == null) {
                    long templateId = Util.generateId();
                    try {
                        MailTemplate mt = new MailTemplate(templateId, title.getValue().toString(),
                                textContent.getValue().toString(), htmlContent.getValue().toString(),
                                subject.getValue().toString());
                        event.getButton().getWindow().setVisible(false);
                        event.getButton().getWindow().getParent()
                                .removeComponent(event.getButton().getWindow());
                        event.getButton().getWindow().getParent().showNotification("Saved successfully",
                                Notification.TYPE_HUMANIZED_MESSAGE);
                        tl.getBeanContainer().addItem(mt.getId(), mt);
                    } catch (RuntimeException e) {
                        // Should never happen ... hopefully :D
                    }
                } else {
                    MailTemplate mt = new MailTemplate(templateId);

                    mt.setHtml(htmlContent.getValue().toString());
                    mt.setSubject(subject.getValue().toString());
                    mt.setText(textContent.getValue().toString());
                    mt.setTitle(title.getValue().toString());

                    event.getButton().getWindow().setVisible(false);
                    event.getButton().getWindow().getParent().removeComponent(event.getButton().getWindow());
                    event.getButton().getWindow().getParent().showNotification("Saved successfully",
                            Notification.TYPE_HUMANIZED_MESSAGE);

                    final int beanIndex = tl.getBeanContainer().indexOfId(mt.getId());
                    tl.getBeanContainer().removeItem(mt.getId());
                    tl.getBeanContainer().addItemAt(beanIndex, mt.getId(), mt);
                }
                TemplateSelectBox.reloadSelect();
            }
        }
    });

    hLayout.addComponent(saveButton);
    hLayout.addComponent(cancel);
    hLayout.setSpacing(true);

    VerticalLayout metaDataLayout = new VerticalLayout();

    Panel textFieldPanel = new Panel("Meta Data");
    VerticalLayout metaLayout = new VerticalLayout();
    metaLayout.addComponent(title);
    metaLayout.addComponent(subject);
    textFieldPanel.addComponent(metaLayout);

    Panel helpPanel = new Panel("Template Documentation");
    assembleHelpComponents(helpPanel);

    metaDataLayout.addComponent(textFieldPanel);
    metaDataLayout.addComponent(helpPanel);

    tSheet.addTab(metaDataLayout).setCaption("Meta Data");

    VerticalLayout textLayout = new VerticalLayout();
    textLayout.addComponent(textContent);
    tSheet.addTab(textLayout).setCaption("Text Content");

    VerticalLayout htmlLayout = new VerticalLayout();
    htmlLayout.addComponent(htmlContent);
    tSheet.addTab(htmlLayout).setCaption("HTML Content");

    rootPanel.addComponent(tSheet);
    rootPanel.addComponent(hLayout);
    addComponent(rootPanel);
}

From source file:com.trivago.mail.pigeon.web.components.templates.TemplateList.java

License:Apache License

public TemplateList() {

    final TemplateList nl = this;
    final Panel rootPanel = new Panel("Newsletter");
    rootPanel.setWidth("800px");

    viewTable = new Table();
    viewTable.setWidth("100%");
    beanContainer = new BeanContainer<Long, MailTemplate>(MailTemplate.class);

    Button senderListNewButton = new Button("New Template");
    senderListNewButton.setImmediate(true);
    senderListNewButton.setIcon(new ThemeResource("../runo/icons/16/document-add.png"));
    senderListNewButton.addListener(new Button.ClickListener() {
        @Override/*from   w w  w.  ja  v  a 2 s. c om*/
        public void buttonClick(Button.ClickEvent event) {
            Window modalNewWindow = new ModalAddTemplate(nl);
            event.getButton().getWindow().addWindow(modalNewWindow);
            modalNewWindow.setVisible(true);
        }
    });

    List<MailTemplate> mailList = getTemplateList();
    for (MailTemplate mail : mailList) {
        beanContainer.addItem(mail.getId(), mail);
    }

    viewTable.setContainerDataSource(beanContainer);
    viewTable.addGeneratedColumn("Actions", new ActionButtonColumnGenerator());

    // First set the vis. cols, then the headlines (the other way round leads to an exception)
    viewTable.setVisibleColumns(new String[] { "id", "subject", "Actions" });

    viewTable.setColumnHeaders(new String[] { "ID", "Subject", "Actions" });

    viewTable.setColumnExpandRatio(6, 2);

    HorizontalLayout topButtonLayout = new HorizontalLayout();
    topButtonLayout.addComponent(senderListNewButton);
    // topButtonLayout.addComponent(statusPopup);
    topButtonLayout.setMargin(false, false, true, false);

    rootPanel.addComponent(topButtonLayout);
    rootPanel.addComponent(viewTable);

    setCompositionRoot(rootPanel);
}

From source file:com.wft.ui.WelcomeLoginApplication.java

License:Apache License

@Override
public void init() {
    window = new Window("Web Foot Tournament");

    subwindow = new Window("Connexion");
    // ...and make it modal
    subwindow.setModal(true);//from  w  w  w.  j  a va 2  s  . c om
    subwindow.setClosable(false);
    subwindow.setResizable(false);
    subwindow.setWidth("50%");
    subwindow.setHeight("50%");

    // Configure the windows layout; by default a VerticalLayout
    verticalLayout = new VerticalLayout();
    subwindow.setContent(verticalLayout);
    verticalLayout.setMargin(true);
    verticalLayout.setSpacing(true);
    verticalLayout.setSizeFull();

    wftLoginForm.setSizeFull();
    verticalLayout.addComponent(wftLoginForm);
    verticalLayout.setComponentAlignment(wftLoginForm,
            new Alignment(Bits.ALIGNMENT_HORIZONTAL_CENTER | Bits.ALIGNMENT_VERTICAL_CENTER));

    Button createUserBtn = new Button();
    createUserBtn.setCaption("Not yet an user ? Create an account !");
    createUserBtn.addListener(new ClickListener() {

        public void buttonClick(ClickEvent event) {
            switchToCreateUserForm();
        }
    });
    verticalLayout.addComponent(createUserBtn);

    window.addWindow(subwindow);

    setMainWindow(window);

}

From source file:de.codecentric.vaadin.copy2clipboard.Copy2ClipboardApplication.java

License:Apache License

/**
 * (non-Javadoc)//from   ww  w. j  a  v a 2s. c o  m
 * 
 * @see com.vaadin.Application#init()
 */
@Override
public void init() {
    mainWindow = new Window();
    setMainWindow(mainWindow);

    // Add a Copy2ClipboardButton to the main page:

    Copy2ClipboardButton button = new Copy2ClipboardButton();
    button.setCaption("Copy");
    button.setClipboardText("copy this to the clipboard");
    button.addListener(new CopyListener("from page: copied to clipboard"));

    mainWindow.addComponent(button);

    // Add a Copy2ClipboardButton to a panel:

    Copy2ClipboardButton c2c = new Copy2ClipboardButton();
    c2c.setCaption("panelTest");
    c2c.setClipboardText("clipboard text from panel");
    c2c.addListener(new CopyListener("from panel: copied to clipboard"));

    Panel panel = new Panel();
    panel.addComponent(c2c);
    mainWindow.addComponent(panel);

    Button modal = new Button("open modal window");
    modal.addListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            C2CModalWindow w = new C2CModalWindow("Modal window");
            w.center();
            w.setContent(new ModalLayout());
            mainWindow.addWindow(w);
        }
    });

    mainWindow.addComponent(modal);
}

From source file:de.escidoc.admintool.view.admintask.filter.ShowFilterResultCommandImpl.java

License:Open Source License

private void addPurgeButton() {
    final Button purgeBtn = new Button(ViewConstants.PURGE);
    purgeBtn.setWidth("150px");
    formLayout.addComponent(purgeBtn);/*from  ww  w .ja va 2  s.  c om*/
    purgeBtn.addListener(new PurgeResourcesListener(this, formLayout, filterResourceView.adminService,
            filterResourceView.mainWindow));
}