List of usage examples for com.vaadin.ui Button addListener
@Override
public Registration addListener(Component.Listener listener)
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)); }