package com.vaadin.tests.fieldgroup;
import com.vaadin.data.fieldgroup.BeanFieldGroup;
import com.vaadin.data.fieldgroup.FieldGroup.CommitException;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.Log;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.Notification;
public abstract class AbstractBeanFieldGroupTest extends TestBase {
private Button commitButton;
protected Log log = new Log(5);
private Button discardButton;
private Button showBeanButton;
private BeanFieldGroup fieldBinder;
@Override
protected void setup() {
addComponent(log);
}
protected Button getDiscardButton() {
if (discardButton == null) {
discardButton = new Button("Discard", new Button.ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
getFieldBinder().discard();
log.log("Discarded changes");
}
});
}
return discardButton;
}
protected Button getShowBeanButton() {
if (showBeanButton == null) {
showBeanButton = new Button("Show bean values",
new Button.ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
log.log(getFieldBinder().getItemDataSource()
.getBean().toString());
}
});
}
return showBeanButton;
}
protected Button getCommitButton() {
if (commitButton == null) {
commitButton = new Button("Commit");
commitButton.addListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
String msg = "Commit succesful";
try {
getFieldBinder().commit();
} catch (CommitException e) {
msg = "Commit failed: " + e.getMessage();
}
Notification.show(msg);
log.log(msg);
}
});
}
return commitButton;
}
protected BeanFieldGroup getFieldBinder() {
return fieldBinder;
}
protected void setFieldBinder(BeanFieldGroup beanFieldBinder) {
fieldBinder = beanFieldBinder;
}
@Override
protected String getDescription() {
// TODO Auto-generated method stub
return null;
}
@Override
protected Integer getTicketNumber() {
// TODO Auto-generated method stub
return null;
}
}