package org.vaadin.jefferson.demo.simpleaddressbook.content; import org.vaadin.jefferson.Presentation; import org.vaadin.jefferson.content.ButtonControl; import org.vaadin.jefferson.demo.simpleaddressbook.domain.Contact; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; public class ContactRemoveControl extends ButtonControl { private Contact contact; public ContactList contactList; ContactRemoveControl(ContactList contactList) { super(SimpleAddressBookView.REMOVE_CONTACT); this.contactList = contactList; setListener(new ContactRemoveHandler()); } public void setContact(Contact contact) { Button rendition = getRendition(); if (rendition != null) { rendition.setEnabled(contact != null); } this.contact = contact; } @Override protected Button accept(Presentation presentation) { Button rendition = super.accept(presentation); setContact(contact); return rendition; } private class ContactRemoveHandler implements Button.ClickListener { public void buttonClick(ClickEvent event) { contactList.removeContact(contactList.getSelection()[0]); } } }